Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: rpgamer97 en Junio 15, 2017, 06:16:02 AM

Título: ¿Como hacer doble salto con este tipo de script?
Publicado por: rpgamer97 en Junio 15, 2017, 06:16:02 AM
Buenas a todos, mi pregunta hoy es la siguiente, veran tengo este script de movimiento
///Moverse
key_left = keyboard_check(vk_left)
key_right = keyboard_check(vk_right)


if place_free(x,y+1)
{
gravity = 0.7
gravity_direction = 270
}
else
{
gravity=0
gravity_direction = 270
}
//the arrow keys<,>,^ 
if place_free(x-4,y)and key_left {
x-=4
image_speed = 0.5
image_xscale = -1
}
if place_free(x+4,y)and key_right {
x+=4
image_speed = 0.5
image_xscale = 1
}

Y mi pregunta es, ¿como puedo agregarle el doble salto a el script?
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: Torrencypower en Junio 15, 2017, 06:06:41 PM
Puedes agregar una variable salto igual a 0 en el evento de creación, entonces cada vez que el jugador salte incrementas ésta variable, y la vuelves a 0 cuando llegue al suelo.

Además en el evento step al presionar la tecla correspondiente al salto deberás revisar si la variable "salto" es menor a 2 o a la cantidad de veces que quieres que el personaje salte. También te recomendaría que uses las variables predeterminadas "hspeed" y "vspeed" para el movimiento.

Create Event


salto=0;
image_speed= 0.5;
gravity_direction= 270;



Step Event


///Moverse
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);
key_up = keyboard_check_pressed(vk_space);

if place_free(x,y+1){
    gravity = 0.7;
    }else{
        salto=0;
        vspeed=0;
        gravity=0;
        }

//the arrow keys<,>,^

if (place_free(x-4,y) and key_left) {
    x-=4;
    image_xscale = -1;
    }

if (place_free(x+4,y) and key_right) {
    x+=4;
    image_xscale = 1;
    }

if (salto<2 and key_up) {
    vspeed=-10;
    salto++;
    }



Te recomendaría usar un método alternativo para detectar las colisiones, con el código actual no me sorprendería que el personaje se quede atrapado dentro de algún objecto sólido sin poder moverse. Saludos
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: rpgamer97 en Junio 16, 2017, 03:25:39 AM
Gracias Torrencypower probare tu código y dire si funciona bien, y si, se que debo mejorar las colisiones gracias por el detalle.
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: rpgamer97 en Junio 16, 2017, 10:59:07 PM
buenas, no me funciono el código del dooble salto, y recordando ahora yo habia usado uno similar antes y no funciono,  :-[ no tiene alguien algún metodo alternativo de hacerlo?
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: Torrencypower en Junio 16, 2017, 11:24:25 PM
Que raro, lo probé y funcionaba, cuál es el problema que tienes cuándo intentas saltar?
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: rpgamer97 en Junio 17, 2017, 04:13:05 AM
El problema es que solamente salta una vez, y luego de que salto y cae y vuelvo a presionar la tecla salta, pero a partir de la 3° vez no salta.
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: Goganpis en Junio 17, 2017, 04:56:31 AM
Jajaja, el problema lo tienes es que no reinicias la variable al tocar el suelo y que el doble salto no suma mientras no toca el suelo si no entiendes pues es algo como:

if place_meeting(x,y+1,obj_suelo) {
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: Goganpis en Junio 17, 2017, 05:07:24 AM
Jajaja, el problema lo tienes es que no reinicias la variable al tocar el suelo y que el doble salto no suma mientras no toca el suelo si no entiendes pues es algo como:

if !place_meeting(x,y+1,obj_suelo) {
if keyboard_check(vk_up) {
  salto++
  vspeed-=8
}
}
else {
if place_meeting(x,y+1,obj_suelo) {
  salto=0
}

Si te ayudo coloca un Solucionado a tu pregunta suerte!  ;) ;) ;) ;)
disculpa que no acomplete la respuesta anterior pero aki esta completa.
Título: Re:¿Como hacer doble salto con este tipo de script?
Publicado por: rpgamer97 en Junio 18, 2017, 03:39:39 AM
gracias a todos, si logre solucionarlo, tuve que hacer cambios drasticos en el código pero gracias a las respuestas me dieron buenas ideas no solo para el doble salto sino tambien en otras cosas, gracias.