Septiembre 07, 2018, 10:01:20 PM Ultima modificación: Septiembre 07, 2018, 10:02:55 PM por Skynacoss
Hola todos, espero alguno de ustedes me pueda ayudar ya que no tengo mucho tiempo usando Game Maker y por ende carezco de experiencia con el uso de el mismo

Bueno a lo que iba, estoy haciendo un juego en el que un personaje sigue a un objeto por toda la pantalla de la room, dicho personaje se mueve como la viborita de Snake, hacia arriba, hacia abajo, izquierda o derecha segun donde aparezca el objeto en la room

Todo bien hasta aqui, mi problema es cuando por ejemplo si el personaje va caminando hacia la derecha y derrepente el objeto aparece situado detras del personaje, este en vez de moverse hacia arriba o hacia abajo primero para poder irse hacia la izquierda se va directamente hacia la izquierda

Tambien me pasa si el personaje va caminando hacia arriba o hacia abajo en vez de dar primero la vuelta hacia un lado se va directamente de reversa segun donde este el objeto al que sigue, ese mi problema y no se como poder solucionarlo llevo semanas buscando en internet alguna referencia o algo pero no he podido encontrar nada

Hola Skynacoss

Todo depende de cómo haces que el personaje se mueva.
Asumiré que estás usando una variable de dirección entre 0 y 359 grados

Si la nueva dirección es de 180 grados (la vuelta completa hacia atrás), lo haces girar 90 (un giro hacia el lado).
Un ejemplo con variables inventadas podría ser así:
if abs(angle_difference(new_direction,old_direction)) = 180 {
new_direction = choose(old_direction-90,old_direction+90)
}


Eso calcula que si el personaje debe dar la vuelta a 180 grados hacia atrás, en vez de eso, elije irse 90 grados a la derecha o 90 grados a la izquierda, no importa cual de las 4 direcciones vaya, 0, 90, 180 o 270 grados.

Saludos

Hola muchas gracias por responder, como apenas estoy aprendiendo a usar Game Maker no se mucho acerca
de lo que es el lenguaje GML, todo o la mayoria de lo que he introducido a mi juego es mediante el metodo DnD

De hecho para hacer que mi personaje se moviera hacia el objeto use la accion move towards con los parametros objeto.x objeto.y en el evento step

Y para que se moviera hacia arriba, abajo, izquierda o derecha en lugar deforma diagonal como lo hacia al princio
agreguelas siguientes acciones tambien en el evento step

[spoiler][/spoiler]

Espero haberme dado a entender y gracias por su ayuda