Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Como soluciono problema al saltar  (Leído 267 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fredred156

  • Visitante
  • *
  • Puntos: 3
  • Mensajes: 1
    • Ver Perfil
en: Marzo 26, 2020, 11:41:15 pm
Hola amigos, soy nuevo en game maker studio
tengo un problema al saltar, cuando salto mi personaje salta obvio y cuando presiono las teclas de direccion izquierda y derecha mistras salto y toco el suelo mi sprite se pone en mi sprite
de quedarse quieto y no da su sprite de caminar mientras estoy en el suelo cuando justamente caigo  :'( :'(
//movimiento y salto

var i = keyboard_check(vk_left)
var d = keyboard_check(vk_right)

if i && place_free(x-4,y)
{
direccion=1
x-=4
sprite_index=spr_player_walk
image_speed=0.4
image_xscale=-1
if up ==true
{
 sprite_index=spr_player_jump
 image_index=0
 image_speed=0
 image_xscale=-1
}
if fall == true
{
 sprite_index=spr_player_jump
 image_index=1
 image_speed=0
 image_xscale=-1
}
}


if d && place_free(x+4,y)
{
direccion=0
x+=4
sprite_index=spr_player_walk
image_speed=0.4
image_xscale=+1
if up ==true
{
 sprite_index=spr_player_jump
 image_index=0
 image_speed=0
 image_xscale=+1
}
if fall == true
{
 sprite_index=spr_player_jump
 image_index=1
 image_speed=0
 image_xscale=+1
}
}

//salto
if keyboard_check_pressed(vk_up) && not place_free(x,y+1)
{
sprite_index=spr_player_jump
image_index=0
image_speed=0
vspeed=-salto
}
//verificar si salta o no
if vspeed>0
{
 fall=true;
}
else
{
fall = false
}
if vspeed<0
{
 up=true;
}
else
{
up = false
}

if !keyboard_key
{
if fall == true
{
  if direccion = 0
  {
   sprite_index=spr_player_jump
   image_index=1
   image_speed=0
  }
   if direccion = 1
  {
   sprite_index=spr_player_jump
   image_index=1
   image_speed=0
   image_xscale=-1
  }
 }
 else
 if up == true
 {
 if direccion = 0
  {
   sprite_index=spr_player_jump
   image_index=0
   image_speed=0
  }
   if direccion = 1
  {
   sprite_index=spr_player_jump
   image_index=0
   image_speed=0
   image_xscale=-1
   }
 }
 else
 {
  if direccion = 0
  {
   sprite_index=spr_player_walk
   image_index=0
   image_speed=0
  }
   if direccion = 1
  {
   sprite_index=spr_player_walk
   image_index=0
   image_speed=0
   image_xscale=-1
   }
 }
}

« última modificación: Marzo 28, 2020, 02:29:24 am por fredred156 »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Black_Cat

Respuesta #1 en: Marzo 27, 2020, 11:37:43 am
es medio imposible adivinar XD
Pero si colocas el código podemos revisarlo y ver donde falla



 
Los siguientes usuarios dieron las gracias a este tema: fredred156


Desconectado BssString

Respuesta #2 en: Marzo 28, 2020, 02:11:25 am
Hola fredred156

En Game Maker cada línea de código se ejecuta una a una en orden, eso quiere decir que no ejecuta la segunda hasta que no haya leido la primera.
Corta el código de movimiento izquierda-derecha y pégalo después de todo el código que nos acabas de mandar.
Eso hará que el código de movimiento se ejecute justo después de caer y así se te actualice el sprite correctamente.

Saludos

 
Los siguientes usuarios dieron las gracias a este tema: Black_Cat, fredred156