Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: totemalf en Noviembre 16, 2012, 08:16:39 PM

Título: No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 16, 2012, 08:16:39 PM
Llevo todo el día con GameMaker y estoy totalmente frustrado, no consigo tan siquiera hacer los movimientos básicos del personaje... bueno, los movimientos si, pero las animaciones no. Pongo el rar del proyecto a ver si podéis aclararme que estoy haciendo mal, porque estoy al borde de abandonar...

Lo que quiero hacer es simple, el personaje aparece mirando al frente, quiero que al ir a la derecha vaya dando bocados al estilo pacman (eso lo he conseguido), pero que cuando se pare siga mirando a la derecha con la boca cerrada (eso no, se queda dando bocados), y lo mismo para el lado izquierdo. Luego el salto, que está hecho, que mire para el lado que está saltando dando bocados (eso funciona). Mirad el ejemplo que adjunto, a ver si veis cual puede ser el error, estaría muy agradecido. La verdad que he visto muchos videos hoy, pero no hay ni uno solo que me aclare esta duda. Incluso el tutorial oficial usa un personaje sin animar por lo que me aclara poco.

Por favor!!!
Un saludo y gracias.
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: Mgbu en Noviembre 16, 2012, 10:58:47 PM
Y, lo que pasa es que para empezar conviene hacer algo mas simple, bueno, no tengo GM studio pero creo como arreglarlo

Yo haría que al no apretar ningun boton se detenga la animación y se ponga la primer subimagen, supongo que usas los cuadraditos arrastrandolos, yo usaría esto en el evento "Step":

Test expression (ficha control:) Expression=not keyboard_check(vk_up) and not keyboard_check(vk_down) and not keyboard_check(vk_left) and not keyboard_check(vk_right)

CitarStart block (ficha Control) (Es el triangulo que mira hacia arriba)

Set variable (ficha Control): Variable=image_speed, Value=0
    *Eso detendría la animación*

Set variable (ficha Control): Variable=image_index, Value=0
    *Eso pondría la primera subimagen del sprite*

End block (ficha Control) (Es el triangulo que mira hacia abajo)

Else (ficha Control)

Set variable (ficha Control): Variable=image_speed, Value=1
    *Eso reproduciría la animación*

Traduciendolo significaría

"Si no se apreta ninguna flecha pausar la animacion y poner la primera subimagen.
O si no Animar al sprite"


Si no funciona podés apretar el botón "Show Information" del objeto y me pasás lo que dice, eso explica detalladamente como funciona lo que hiciste
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 17, 2012, 08:48:49 AM
Muchísimas gracias,
voy a intentarlo con tus indicaciones  :D
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 17, 2012, 09:21:47 AM
Lo conseguí  8)
muchísimas gracias, ¿que haríamos los novatos son CGM?
Sí, soy principiante y por tanto lo hago a base de arrastrar los cuadritos de las acciones.

Un saludo
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 17, 2012, 12:48:22 PM
Más problemas (cuanto más uso Game Maker menos lo entiendo)

La duda anterior como dije en el mensaje anterior ha sido solventada, sin embargo el funcionamiento no es perfecto. Si mantengo pulsado el botón derecho por ejemplo la animación corre perfecta, pero si lo pulso, suelto, pulso, suelto, pulso, suelto... consigo mover el personaje sin animación, o sea viendose solo la imagen 1. Esto es poco importante ya que el jugador no va a hacer eso normalmente, pero sería bueno si pudiese arreglarlo.

El fallo gordo viene despues. Yo todo lo había hecho con un personaje llamado pelota, y sus animaciones eran de mover la boca, con este personaje muy bien, pero cuando he dibujado un nuevo personaje "humano" y he cambiado los sprites del objeto, resulta que no va a la izquierda, bueno si que va, pero al colisionar con algun objeto desaparece y aparece varias casillas atrás, o bien desaparece y cae del techo.... yo lo flipo, porque para la derecha va perfecto, y la izquierda es un duplicate de la derecha con flip horizontal. Se que tiene que ver con los sprites, ya que con la bola me funcionaba, pero he redibujado el personaje cuarenta veces y nada  :'(
Como siempre, añado el rar del proyecto.

Creo que GM falla demasiado en lo básico, mover y animar a un personajillo debería ser más sencillo (llevo dos días y todavia no lo he conseguido), y debería existir una acción llamada saltar que ya viniese preconfigurada con la gravedad para juegos de plataformas y similares, donde solo tengas que añadirla y poner la fuerza del salto y la fuerza de gravedad.

Un saludo
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: Mgbu en Noviembre 17, 2012, 02:33:55 PM
El error de animacion sucede porque tu image_speed es muy lenta, probá haciendo que en el "else" al lado de "set image_speed to 0.2" poné "set image_index to 1"


Al error de colisiones abri un nuevo tema, ya que el problema es otro
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 17, 2012, 03:32:00 PM
Yo creo que es otra cosa, he creado  el  "set image_index to 1" y esto lo que hace es fijarme un sprite y no mostrar la animación. Además sigue dando el mismo error, así que queda peor que antes.

Por otra parte he probado a aumentar a uno image_speed y sigue ocurriendo el mismo error. Tiene que ver con los sprites porque ya te digo que con una bola redonda no me da el problema, ha sido al cambiarle los sprites por los de un personaje humano.

Un saludo y gracias
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: Mgbu en Noviembre 17, 2012, 06:03:44 PM
Ah, si, tenes razon :-[

El "set image_index to 1" va en los eventos de "key press" de las flechas derecha e izquierda
Para no complicarlo mas acá esta el juego corregido adjunto
Título: Re:No consigo que las animaciones casen con el movimiento
Publicado por: totemalf en Noviembre 17, 2012, 11:07:05 PM
Buenas,
Muchas gracias Mgbu, el problema de la animación estás arreglado, solo había un problemilla, tal como me lo has pasado seguía igual, he tenido que mover la variable que has creado justo debajo del change sprite, y ya si que funciona perfecto. Al dar click, soltar, click, soltar, click, soltar, hace el primer frame del sprite y queda mucho mejor. Te lo agradezco.
Ahora solo me queda el problema con la colisión, voy a hacer otro post, para es tema.

Un saludo!