Hola. hace tiempo que estoy haciendo un RPG por turnos pero estoy trabado en la parte de hacer que el jugador camine hacia el enemigo ataque y luego de que termine la animacion de ataque vuelva a su posicion inicial. E tratado diferentes metodos pero ninguno me funciona ¿alguien sabe como hacerlo ?
Guarda la posicion inicial en un par de variables (poisicion_x=x , posicion_y=y) y muevelo a esas coordenadas cuando termine de atacar.
Una maquina de estados tambien te ayudaria para planear el comportamiento del objeto y saber que hacer en cada momento.
Lo tengo asi:
///Ataque
switch (strState)
{
case "fight":
//El jugador camina
numVX = 3;
sprite_index = sprTomWalk;
// cuando coliciona con el enemigo se detiene y cambia a la animacion de ataque
if place_meeting(x+12,y,objEnemigo)
{numVX = 0
sprite_index = sprTomAtack;
}
//detectar cuando termina la animacion cambiar a esta back
if image_index = image_number -1{strState = "back"}
break;
case "back":
//caminar hacia atras
numVX = -3;
sprite_index = sprTomWalk;
//cuaando choca con el objBlock se detiene y cambia a estado idle
if place_meeting(x-5,y,objBlock)
{numVX = 0
strState = "idle";
break;
}
}
cuando el jugador coliciona con el enemigo cambia a la animacion de ataque pero por alguna razon la animacion se repite un monton de veces en vez de cambiar al estado back
me parece que el problema está acá:
[gml]
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
{numVX = 0
sprite_index = sprTomAtack;
}
[/gml]
Se detiene, y se sigue cumpliendo en cada step la instruccion de sprite_index = sprTomAttack. Entonces se ejecuta el resto de lo que queda, pero en el siguiente step se vuelve a asignar, creo que es por eso que nunca termina de animarse porque se asigna de nuevo cada step.
intentá ponerle esta condicion:
[gml]
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
{numVX = 0
if (sprite_index != sprTomAtack)
sprite_index = sprTomAtack;
}
[/gml]
eso haría que solo se asigne una vez, y por lo tanto no se repita la animacion infinitas veces
Muchas gracias a 3dgeminis y Black_Cat por ayudarme con el RPG. E estado probando diferentes metodos hasta que llegue a el que use ahora. Muchas gracias de nuevo , ahora solo le anadire unas cuantas cosas mas como una contador de vida , que el enemigo pueda atacar y esas cosa.