Buenas, estoy usando un spawner de enemigos para que salgan desde el objeto colocado, pero en tiempo aleatorio (usando el dado "With chance", que no me agrada demasiado pero bué...) y no queda del todo mal, menos cuando le dá por sacarme uno encima de otro, o trenecitos de varios enemigos super compactados. :-\
Mi idea era poner un código que diga algo comooo "Si hay un enemigo cerca del emisor, no funciona" para asegurarme de que cuando eche un enemigo, no pueda echar otro de seguido, pero no he conseguido dar en el clavo.
¿Alguien sabe como hacer esto o hacer otro spawner desde cero que quede mejor? Para la opción de rehacer el spawner, tener en cuenta que de él tienen que salir 3 tipos de enemigos con diferentes probabilidades (Un enemigo es el común, y los otros dos deben salir solo uno cada X tiempo)
Un saludo.
Debes hacer que los enemigos tengan un parent
La parte del instance_create no es exactamente como lo pides pero ahi te puedes hacer una idea
//Posicion x,y del enemigo mas cercano
var ex, ey;
ex = instance_nearest(x, y, par_enemigo).x;
ey = instance_nearest(x, y, par_enemigo).y;
//Verificar que el enemigo este a una cierta distancia
if point_distance(x, y, ex, ey) < distancia
{
instance_create(x, y, choose(enemigo1,enemigo1,enemigo1,enemigo2,enemigo2,enemigo3))
}
Gracias, con esto conseguí que no salieran compactados, aunque tuve que poner "> distancia" no "< distancia", ya que quiero que no salgan mientras están aún cerca del spawner, no lo contrario xD.
De todas formas el dado este no me gusta nada... lo mismo se queda la sala vacía, que me salen de todos sitios a la vez en filas de 3 y palmas.
Por cierto, ¿no puedo meter varios enemigos aquí?:
ex = instance_nearest(x, y, par_enemigo).x;
ey = instance_nearest(x, y, par_enemigo).y;
Es que no quiero que se me amontonen los comunes, ni los especiales, que aunque salgan menos, aprovechan para pegarse a algún común xD y cuando intento meter varios enemigos en ese código, me da error :(
P.D. Para más inri, he descubierto que el dado no hace un random real... Aunque cada partida nueva salen los enemigos de distinta forma... si entro al juego, echo una partida, salgo del juego y vuelvo a entrar, me hace la misma combinación :S
el random no hace un random real por cuestiones de debbuging, escribe por el codigo randomize() al comienzo de tu juego para que trabaje como deberia.
En cuanto a lo otro, por eso te dije que uses parientes, sirve para evitar redundancia de codigo.
Puedes hacer un pariente para los enemigos normales y otro para los especiales, hasta puedes hacer un pariente que contenga a ambos parientes
Ah, vale, no lo entendí porque es la primera vez que oigo el concepto "parientes" en GM xD. Pero ya he buscado por ahí como se creaban parientes para no darte mucho la tabarra y pude hacerlo, gracias de nuevo :)
P.D. lo de "randomize()" fué un exitazo :D jajaja