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.
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.
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....
Al parecer tienes mal planteado el step.
Cuando pueda tenga tiempo, lo reviso.
;)
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. ;)