Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DarkKRuleR en Septiembre 25, 2013, 08:55:35 PM

Título: [Resuelto] instance_nearest_with_value
Publicado por: DarkKRuleR en Septiembre 25, 2013, 08:55:35 PM
Heyyss! Qué manera hay de hacer un instance_nearest sólo de objetos cuya variable valga cierto valor? algo así como hacer instance_nearest de todos los objetos posibles, guardarlos en un array e ir chequeando..

la cuestión es que programo una IA, donde puede haber varios enemigos, y tiene que localizar al enemigo "más débil", con menos defensas, para hacerle focus y atacarle, es obvio, a menos que tengas a un enemigo mediodébil en tus narices y te esté violando, en ese caso mejor le atacas a él que sino mientras caminas hacia el otro ya te han destruido entre los dos. La cuestión, todos los enemigos son el mismo objeto, debería guardarme la ID de todos ellos e ir chequeando, pero no sé cómo...

por ahora sólo tengo implementado 1vs1 y funciona, pero no funcionaría en un 2vs2, ni sabría cómo hacerlo.
Título: Re:instance_nearest_with_value
Publicado por: Texic en Septiembre 25, 2013, 09:20:19 PM
Podrías usar un with con un if, no es muy intensivo si no son muchos objetos (más de 50)
Título: Re:instance_nearest_with_value
Publicado por: DarkKRuleR en Septiembre 25, 2013, 09:31:44 PM
... increíblemente obvio, no sé cómo no me di cuenta. Un if de todos los objetos, en cada uno de ellos checo una variable indicando que sea enemigo (o aliado si va a realizar una habilidad de apoyo), los voy agregando a un array para él, y luego checo del array cuál hacer objetivo, por ejemplo el que sea más débil defensivamente..

aunque ahora que lo pienso, podría ser mejor guardarme las IDs de los demas jugadores en cada jugador al crearlo. Así me ahorro los with y los ifs, y paso directamente a buscar al objetivo,  teniendo ya delante la lista de id's de todos. Me ahorro mucho tiempo de procesado =D

Gracias =)
Título: Re:[Resuelto] instance_nearest_with_value
Publicado por: Texic en Septiembre 25, 2013, 09:38:54 PM
Citar... increíblemente obvio, no sé cómo no me di cuenta. Un if de todos los objetos, en cada uno de ellos checo una variable indicando que sea enemigo (o aliado si va a realizar una habilidad de apoyo), los voy agregando a un array para él, y luego checo del array cuál hacer objetivo, por ejemplo el que sea más débil defensivamente..

Gracias =)
Claro, aclaro por las dudas que no sería un with de TODOS los objetos, sino del objeto en cuestión, digo por si las dudas, tu mensaje fue un poco ambigüo xD
Título: Re:[Resuelto] instance_nearest_with_value
Publicado por: DarkKRuleR en Septiembre 25, 2013, 11:41:40 PM
Xacto, un with de todos los objetos enemigo, me expresé muy ambiguamente ^^