Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zorge en Enero 22, 2018, 12:42:55 AM

Título: Problema con las animaciones
Publicado por: zorge en Enero 22, 2018, 12:42:55 AM
Buenas noches, nuevamente vengo a pedir ayuda, ya que programando desgraciadamente soy un poco malillo, tengo mi player con sus respectivos movimientos, todo bien cada uno de ellos acompañados de su respectiva animación, y todo funcionaba perfectamente hasta que incorpore la animación de muerte, que no se porque motivo no se reproduce.
Dejo aquí mi codigo por si alguien me puede orientar, no se rian mucho de mi codigo como digo soy muy malo en ello y voy cogiendo de aqui de alli etc etc.

evento step : if move  = 0  {sprite_index = SprFoxyIdle image_speed = 0.2}
if move  = 1  {sprite_index = SprFoxyRun image_speed = 1.2}
if move  = 2  {sprite_index = SprFoxyJump; image_speed = 0}
if move  = 3  {sprite_index = SprFoxyDead; image_speed = 0}

if keyboard_check(vk_right) or keyboard_check(vk_left )and move !=3 {move = 1}else move = 0
if keyboard_check(vk_right) and keyboard_check(vk_left ) {hspeed = 0;move = 0}


if place_meeting(x,y+vspeed,objslope2) {if vspeed >=17.5 {move = 3}}
if place_meeting(x,y+vspeed,P_escenario0) {if vspeed >=17.5 {move = 3}}

evento end step :
vspeed += m_gravity;

if keyboard_check(vk_left)
{
    move_contact_solid(90,m_step);
    move_contact_solid(180,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = -1;
}

if keyboard_check(vk_right)
{
    move_contact_solid(90,m_step);
    move_contact_solid(0,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = 1;
}

if keyboard_check_pressed(vk_up)
if !place_free(x, y+16)
{
    vspeed = m_jump;
}
if vspeed <0 { move = 2 image_index = 0 }

realmente antes si me funcionaba cuando tenia puesto un instance destroy ya que se destruia la instancia al tocar el suelo cuando la vspeed era mayor a 17.5
pero al cambiar el instance destroy por el move = 3 ya no me funciona y no se porque si el instance_destroy si que lo hacia.
Muchas gracias de antemano.
Título: Re:Problema con las animaciones
Publicado por: nonoroman en Enero 23, 2018, 08:45:47 AM
Vale, no te funciona, pero que accion esta haciendo entonces???

Cita de: zorge en Enero 22, 2018, 12:42:55 AM
Buenas noches, nuevamente vengo a pedir ayuda, ya que programando desgraciadamente soy un poco malillo, tengo mi player con sus respectivos movimientos, todo bien cada uno de ellos acompañados de su respectiva animación, y todo funcionaba perfectamente hasta que incorpore la animación de muerte, que no se porque motivo no se reproduce.
Dejo aquí mi codigo por si alguien me puede orientar, no se rian mucho de mi codigo como digo soy muy malo en ello y voy cogiendo de aqui de alli etc etc.

evento step : if move  = 0  {sprite_index = SprFoxyIdle image_speed = 0.2}
if move  = 1  {sprite_index = SprFoxyRun image_speed = 1.2}
if move  = 2  {sprite_index = SprFoxyJump; image_speed = 0}
if move  = 3  {sprite_index = SprFoxyDead; image_speed = 0}

if keyboard_check(vk_right) or keyboard_check(vk_left )and move !=3 {move = 1}else move = 0
if keyboard_check(vk_right) and keyboard_check(vk_left ) {hspeed = 0;move = 0}


if place_meeting(x,y+vspeed,objslope2) {if vspeed >=17.5 {move = 3}}
if place_meeting(x,y+vspeed,P_escenario0) {if vspeed >=17.5 {move = 3}}

evento end step :
vspeed += m_gravity;

if keyboard_check(vk_left)
{
    move_contact_solid(90,m_step);
    move_contact_solid(180,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = -1;
}

if keyboard_check(vk_right)
{
    move_contact_solid(90,m_step);
    move_contact_solid(0,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = 1;
}

if keyboard_check_pressed(vk_up)
if !place_free(x, y+16)
{
    vspeed = m_jump;
}
if vspeed <0 { move = 2 image_index = 0 }

realmente antes si me funcionaba cuando tenia puesto un instance destroy ya que se destruia la instancia al tocar el suelo cuando la vspeed era mayor a 17.5
pero al cambiar el instance destroy por el move = 3 ya no me funciona y no se porque si el instance_destroy si que lo hacia.
Muchas gracias de antemano.
Título: Re:Problema con las animaciones
Publicado por: zorge en Enero 23, 2018, 09:31:03 AM
Cita de: nonoroman en Enero 23, 2018, 08:45:47 AM
Vale, no te funciona, pero que accion esta haciendo entonces???

Cita de: zorge en Enero 22, 2018, 12:42:55 AM
Buenas noches, nuevamente vengo a pedir ayuda, ya que programando desgraciadamente soy un poco malillo, tengo mi player con sus respectivos movimientos, todo bien cada uno de ellos acompañados de su respectiva animación, y todo funcionaba perfectamente hasta que incorpore la animación de muerte, que no se porque motivo no se reproduce.
Dejo aquí mi codigo por si alguien me puede orientar, no se rian mucho de mi codigo como digo soy muy malo en ello y voy cogiendo de aqui de alli etc etc.

evento step : if move  = 0  {sprite_index = SprFoxyIdle image_speed = 0.2}
if move  = 1  {sprite_index = SprFoxyRun image_speed = 1.2}
if move  = 2  {sprite_index = SprFoxyJump; image_speed = 0}
if move  = 3  {sprite_index = SprFoxyDead; image_speed = 0}

if keyboard_check(vk_right) or keyboard_check(vk_left )and move !=3 {move = 1}else move = 0
if keyboard_check(vk_right) and keyboard_check(vk_left ) {hspeed = 0;move = 0}


if place_meeting(x,y+vspeed,objslope2) {if vspeed >=17.5 {move = 3}}
if place_meeting(x,y+vspeed,P_escenario0) {if vspeed >=17.5 {move = 3}}

evento end step :
vspeed += m_gravity;

if keyboard_check(vk_left)
{
    move_contact_solid(90,m_step);
    move_contact_solid(180,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = -1;
}

if keyboard_check(vk_right)
{
    move_contact_solid(90,m_step);
    move_contact_solid(0,m_speed);
    move_contact_solid(270,m_step);
    image_xscale = 1;
}

if keyboard_check_pressed(vk_up)
if !place_free(x, y+16)
{
    vspeed = m_jump;
}
if vspeed <0 { move = 2 image_index = 0 }

realmente antes si me funcionaba cuando tenia puesto un instance destroy ya que se destruia la instancia al tocar el suelo cuando la vspeed era mayor a 17.5
pero al cambiar el instance destroy por el move = 3 ya no me funciona y no se porque si el instance_destroy si que lo hacia.
Muchas gracias de antemano.
Eso es lo que quisiera saber.... XD no se el porque no me funciona lo he cambiado casi todo dos o tres veces y cuando cambio va a peor....sale la animacion o no sale y se para o empieza a correr demasiado....
Título: Re:Problema con las animaciones
Publicado por: nonoroman en Enero 23, 2018, 10:23:20 AM
Al parecer tienes mal planteado el step.

Cuando pueda tenga tiempo, lo reviso.

;)
Título: Re:Problema con las animaciones
Publicado por: nonoroman en Enero 23, 2018, 11:30:21 AM
Bueno, zorge, lo primero encantado de conocerte, paisano, jeejeje.

A ver en tu codigo, por lo que puedo yo ver y entender.

Dices que cuando el player muere, es cuando move = 3, entiendo. Y despues no realiza la animacion deseada.

Yo creo que lo que te esta ocurriendo es lo siguiente, cuando muere, realmente asignas el move a 3, pero inmediatamente despues se te cambia el move a otro valor, ya sea porque estas pulsando una tecla, o por otro motivo que ahora se me escapa.

Para averiguarlo, visualiza por el depurador o simplemente mostrando en pantalla, el valor de move en todo momento. A ver si cuando muere el player, realmente el valor de move permanece en 3 y no es pisado por otro valor.

Comprueba esto, y seguro que te acercaras mas a la solucion.  ;)