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

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.

Gracias, y me podrias ayudar con el codigo Penumbra?
Gracias

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


Alguien me podria ayudar con el codigo??
Muchas Gracias

#5 Julio 29, 2014, 12:26:58 AM Ultima modificación: Julio 29, 2014, 12:37:31 AM por penumbra
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;
}

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

Gracias por la explicacion, aunque no he conseguido que funcionara, se agradece mucho.
Muchas Gracias

Una pregunta, porque se pone en create y no en step, ya que es movimiento??

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