Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DarkKRuleR en Agosto 27, 2012, 02:36:21 AM

Título: [Solucionado] Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 27, 2012, 02:36:21 AM
El título lo dice todo. Ya van dos veces que mi personaje se queda haciendo una animación infinitamente cuando CLARAMENTE, en su evento Animation End, debería cambiar a otra al finalizar la anterior, y no cambia. Casi siempre me cambia pero según en qué situaciones no cambia. Tengo localizada una situación donde si hago una acción justo después de un diálogo y mientras me muevo se estanca la animación y nunca acaba.
Esto es por culpa mía, porque algún código interfiere, o es fallo de game maker? porque no es normal que una animació nunca acabe cuando el evento animation end así lo dice, pase la situación que pase...
Título: Re:Fiabilidad del evento Animation End
Publicado por: pikamaker en Agosto 27, 2012, 02:42:26 AM
tal vez sea uno de los pocos fallos del gm
a mí también me pasó y me pasa mucho :/
Título: Re:Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 27, 2012, 02:52:54 AM
Curiosamente a mí me pasó sólo hoy por primera vez... con GM8...

y si realmente falla, debería montarme un sistema manual de animation end, igual qe me hice un sistema manual de físicas basándome en FORs. Pero no tengo ni idea de cómo hacer manual un animation end xD quizás añadiendo 1 subimagen más al sprite y usando el image_index...
Título: Re:Fiabilidad del evento Animation End
Publicado por: Silver_light en Agosto 27, 2012, 03:16:09 AM
Quizá puedas condicionar el Animation End, con algo como:
Si (sprite == sprite_accion)
  sprite =  sprite_quieto

entonces cuando termina la animacion del sprite, cambia.
No sé si lo hayas intentado...
Saludos!
Título: Re:Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 27, 2012, 03:28:16 AM
Cita de: Silver_light en Agosto 27, 2012, 03:16:09 AM
Quizá puedas condicionar el Animation End, con algo como:
Si (sprite == sprite_accion)
  sprite =  sprite_quieto

entonces cuando termina la animacion del sprite, cambia.
No sé si lo hayas intentado...
Saludos!

Eso es justo lo que tengo xD y lo que sucede es que, en ALGUNAS ocasiones, al final del sprite_accion NO CAMBIA a sprite_quieto...
Título: Re:Fiabilidad del evento Animation End
Publicado por: Texic en Agosto 27, 2012, 05:38:27 AM
De casualidad tenés un image_speed con decimales?
Título: Re:Fiabilidad del evento Animation End
Publicado por: Karasuman en Agosto 27, 2012, 06:47:03 AM
Lo mas probable es que tengas problemas en el codigo, yo utilizo mucho el event animation end y muchas veces me ocurria eso y era por que las condiciones que colocaba en los if no se cumplian o estaban mal hechas o faltaba alguna condicion.
Título: Re:Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 27, 2012, 01:42:33 PM
Pues no, los únicos image_speed que tengo son 1 y -1, pero no creo que el -1 interfiera, creo tenerlo controlado...
pues me toca revisar código o colocar... "parches"? del tipo en step if (sprite and image_index == x) etc...
Título: Re:Fiabilidad del evento Animation End
Publicado por: SobacoEnLlamas en Agosto 27, 2012, 07:11:23 PM
pues a mi no me ha fallado en la vida, de darme bug... SIEMPRE que me ha fallado, es por algún mínimo detalle que a MÍ se me escapaba :/
Título: Re:Fiabilidad del evento Animation End
Publicado por: romon_28 en Agosto 28, 2012, 04:14:38 PM
Es posible que sea el codigo que tenga un error, es simple detectarlo comprobando cada condicion (if), pero de todas formas game maker tiene un defecto en cuento al "animation end" yo creo que es porque se ejecuta antes del "step" o algo asi.

Te recomiendo pongas en "step end" del objeto:

if (image_single == sprite_number)
{

if (sprite_index == sprite_mueve)
{
  sprite_index=sprite_quieto;
}

}

De esa forma ami me soluciono muchos problemas.
Espero que te ayude.

RoMoN
Título: Re:Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 29, 2012, 11:00:44 PM
agradezco las respuestas, parece que sí es por mi código pero no puedo saber qué, así que decidí hacerme un end step manual, como me dijo romon, en animation end, pero a mí manera, la tuya no me funcionaba (no me reconoce sprite_number)
me hice un script:

if (sprite_index == argument0 and image_index == sprite_get_number(argument0)-1) return true; else return false;

con eso en end step hago lo mismo y más fácil. Lo he probado y aparentemente no me vuelve a ocurrir! Uff, ahora tengo todos los bugs arreglados y puedo centrarme en hacer la batalla con el boss y con ello terminar y subir mi demo ^^ gracias! creo que solucionado, espero que no me suceda el error de nuevo...
Título: Re:Fiabilidad del evento Animation End
Publicado por: DarkKRuleR en Agosto 30, 2012, 02:23:18 PM
Vale, solucionado. Resulta que mi animación de moverse va hacia adelante cuando me muevo, y cuando dejo de moverme va hacia atrás, pues si atacaba o hacía algo justo tras dejar de moverme, cuando image_speed = -1, era cuando fallaba todo... lo he solucionado poniendo que si el sprite no es el de correr, image_speed = 1, ahora ya no hay fallos, definitivamente el error era del código, no podía ser del animation end de ninguna manera xD