Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zHeMaa en Noviembre 22, 2014, 10:41:29 AM

Título: Movimiento enemigo 4 direciones [Solucionado]
Publicado por: zHeMaa en Noviembre 22, 2014, 10:41:29 AM
Buenas! Después de probar varios códigos buscados por Internet no doy con lo que quiero..
Me explico, tengo 2 tipos de enemigos y un spawn que va sacando los enemigos.

El problema es que Todos lo enemigos miran para la misma dirección (ya sean el mismo tipo de enemigo o no), es decir, tengo enemigos en las 4 direcciones por ejemplo (arriba, abajo, izquierda y derecha) pero todos los enemigos a lo mejor se ponen a mirar a la izquierda, si hay solamente uno funciona bien, el problema es cuando hay muchos, y me gustaría que cada enemigo fuera "único", a que me refiero por único.. si yo estoy en el centro y me viene un enemigo por las 4 direcciones que todos me miren ami, y no todos para la misma dirección..

Tengo el código pero ya os digo.. no vale mucho la pena por eso, si queréis lo pongo pero yo creo que es tonteria..

Si sabéis como hacerlo, o tenéis el código me lo agradeceríais muchísimo sinceramente!
Un saludo!
Título: Re:Movimiento enemigo 4 direciones
Publicado por: kostra en Noviembre 22, 2014, 11:29:08 AM
para que miren, image_angle = point_direction(x,y,obj_player.x,obj_player.y);
y sobre su movimiento, pues sí, a ver qué código tienes
Título: Re:Movimiento enemigo 4 direciones
Publicado por: zHeMaa en Noviembre 22, 2014, 12:33:27 PM
Este super bien el código ese, pero mas que buscar que se inclinen o miren hacia mi busco que se gire el enemigo hacia mi.

Tengo este código (pero tengo mal puestas las direcciones)

if obj_enemigo1.x > obj_jugador.x and obj_enemigo1.y > obj_jugador.y
{
    sprite_index=spr_enemigo2Arriba
}

if obj_enemigo1.x < obj_jugador.x and obj_enemigo1.y > obj_jugador.y
{
    sprite_index=spr_enemigo2Izquierda
}

if obj_enemigo1.x > obj_jugador.x and obj_enemigo1.y < obj_jugador.y
{
    sprite_index=spr_enemigo2Abajo
}

if obj_enemigo1.x < obj_jugador.x and obj_enemigo1.y < obj_jugador.y
{
    sprite_index=spr_enemigo2Derecha
}


Dejo un archivo adjunto de lo que me pasa exactamente.
Como veis todos los enemigos están mirando para la izquierda, cuando lo que yo quiero es que los que están abajo miren hacia arriba, y los que están en la derecha miren hacia la izquierda (que ya lo hacen en la foto)

Tema caminar ya caminan bien, el problema esta en como miran hacia el jugador.

Gracias!
Título: Re:Movimiento enemigo 4 direciones
Publicado por: kostra en Noviembre 22, 2014, 02:04:29 PM
if (point_direction(x,y,obj_jugador.x,obj_jugador.y) >= 0 and point_direction(x,y,obj_jugador.x,obj_jugador.y) < 45) or (point_direction(x,y,obj_jugador.x,obj_jugador.y) <= 360 and point_direction(x,y,obj_jugador.x,obj_jugador.y) > 315)
{
    sprite_index = spr_enemigo2Derecha;
}
if point_direction(x,y,obj_jugador.x,obj_jugador.y) < 315 and point_direction(x,y,obj_jugador.x,obj_jugador.y) > 225
{
    sprite_index = spr_enemigo2Abajo;
}
if point_direction(x,y,obj_jugador.x,obj_jugador.y) < 225 and point_direction(x,y,obj_jugador.x,obj_jugador.y) > 135
{
    sprite_index = spr_enemigo2Izquierda;
}
if point_direction(x,y,obj_jugador.x,obj_jugador.y) < 135 and point_direction(x,y,obj_jugador.x,obj_jugador.y) > 45
{
    sprite_index = spr_enemigo2Arriba;
}
Título: Re:Movimiento enemigo 4 direciones
Publicado por: zHeMaa en Noviembre 22, 2014, 05:49:59 PM
Funciona perfectamente, gracias!
Título: Re:Movimiento enemigo 4 direciones
Publicado por: kostra en Noviembre 22, 2014, 09:55:53 PM
de nading, escribe [Solucionado] en el título, así ayudas a la peña ;)