Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pacne en Julio 28, 2014, 09:59:21 PM

Título: Salto prolongado
Publicado por: pacne en Julio 28, 2014, 09:59:21 PM
hola comunidad
Hay alguna forma de hacer el salto relativo al tiempo que se presiona el boton? Me explico, si presiono mas tiempo el boton salta mas, si solo toco el boton da un salto. Este es mi codigo:

var jkey = mouse_check_button_released(mb_left);

if (place_meeting(x, y+1, obj_suelo)) {
    vspd = 0;
   
    if (jkey) {
        vspd = -jspd;
    }
} else {

    if (vspd < 10) {
        vspd += grav;
    }
}

if (place_meeting(x+hspd, y, obj_suelo)) {
    while (!place_meeting(x+sign(hspd), y, obj_suelo)) {
        x+= sign(hspd);
    }
    hspd = 0;
}

x += hspd;

if (place_meeting(x, y+vspd, obj_suelo)) {
    while (!place_meeting(x, y+sign(vspd), obj_suelo)) {
        y+= sign(vspd);
    }
    vspd = 0;
}

y += vspd;



Muchas Gracias
Título: Re:Salto prolongado
Publicado por: penumbra en Julio 28, 2014, 10:33:12 PM
Ese código hace que el jugador salte cuando se libera el botón de ratón, por lo que no cuadra con un salto prolongado. Tienes que modificarlo para que salte cuando se presiona el ratón, pero eso no es suficiente, le debes poner un límite al tiempo que el salto se considera "activo".

Si no pones un límite, al presionar el botón del ratón el jugador continuara ascendiendo, lo que resultará en un salto exagerado.
Título: Re:Salto prolongado
Publicado por: pacne en Julio 28, 2014, 10:39:34 PM
Gracias, y me podrias ayudar con el codigo Penumbra?
Gracias
Título: Re:Salto prolongado
Publicado por: penumbra en Julio 28, 2014, 10:46:46 PM
De poder, podría,  pero es mejor que lo intentes por ti mismo. Comienza por conocer las funciones de chequeo del ratón y en que se diferencian unas de otras, porque prácticamente me has pedido que te de el código sin siquiera probar a modificar el código con las sugerencias que mencioné.

http://www.dazlog.com/manual_GM/El_raton.htm (http://www.dazlog.com/manual_GM/El_raton.htm)

Título: Re:Salto prolongado
Publicado por: pacne en Julio 29, 2014, 12:05:35 AM
Alguien me podria ayudar con el codigo??
Muchas Gracias
Título: Re:Salto prolongado
Publicado por: penumbra en Julio 29, 2014, 12:26:58 AM
Insisto, hay que aprender las funciones del ratón. Un mouse_check_button_released() es la función menos adecuada para hacer un salto prolongado. t_click se debe iniciar en [CREATE]

if mouse_check_button(mb_left)
     t_click += 1
else
     t_click = 0

if (t_click > 0) and (t_click < 60)
{
    //código para saltar, en tu caso, creo que sería vspd = -jspd;
}
Título: Re:Salto prolongado
Publicado por: eams1986 en Julio 29, 2014, 12:29:48 AM
La estas pasando igual que todos los que queremos aprender esto.vas muy rapido hasta yo me incluyo que solia hacer esto solo copiar los codigos sin llegar al punto de entender un poco como es lo que quieres ..

aprieta f1 amigo y busca para que sirve cada funcion y te daras cuenta del error que hay ..
Saludos
Título: Re:Salto prolongado
Publicado por: pacne en Julio 29, 2014, 12:43:07 AM
Gracias por la explicacion, aunque no he conseguido que funcionara, se agradece mucho.
Muchas Gracias
Título: Re:Salto prolongado
Publicado por: pacne en Julio 29, 2014, 12:48:30 AM
Una pregunta, porque se pone en create y no en step, ya que es movimiento??
Título: Re:Salto prolongado
Publicado por: penumbra en Julio 29, 2014, 02:35:42 AM
Todo el código que puse va en STEP, lo único que va en CREATE y que no puse, es la inicialización de la variable t_click