quiero hacer un salto como super mario de que si mantienes el boton de salto apretado sube hasta lo que mas puede y si en el curso de el salto manteniendo apretado la tecla de salto que baje. Este es mi codigo de plataformas
create
//Plataformas base
hsp = 0;
vsp = 0;
movespd = 6;
jumpspd = 6;
grav = 0.3;
grounded = false;
jump_movespd = movespd;
step
///Player Logic
//Platform Base Script
//Variables
var rkey = keyboard_check(vk_right); // Right Key
var lkey = keyboard_check(vk_left); // Left Key
var jkey = keyboard_check(vk_up); //Jump Key
var skey = keyboard_check(ord("Z")); // Shoot Key
//Gravedad y salto.
if(place_meeting(x,y+1,obj_wall)){
vsp = 0;
grounded = true;
if(jkey){
vsp = -jumpspd;
}
} else { // Y si no toca el suelo
sprite_index = spr_player_jump;
grounded = false;
if(vsp < 10){
vsp += grav;
}
}
//Movimientos horizontales
if(rkey){
image_xscale = 1;
if(hsp < movespd){
hsp ++;
}
}
if(lkey){
image_xscale = -1
if(hsp > -movespd){
hsp --;
}
}
//Si no toco ningun movimiento hor.
if(!lkey && !rkey){
if(hsp > 0){
hsp --;
} else if(hsp < 0){
hsp ++;
}
}
//Colisiones Horizontales
if(place_meeting(x+hsp,y,obj_wall)){
while(!place_meeting(x+sign(hsp),y,obj_wall)){
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
//Colisiones Verticales
if(place_meeting(x,y+vsp,obj_wall)){
while(!place_meeting(x,y+sign(vsp),obj_wall)){
y += sign(vsp);
}
vsp = 0;
}
y += vsp
creo que se llama variable jump height.
Puedes agregar esta línea de código
[gml]
if( keyboard_check_released(vk_up) and vsp<0 ) vsp /= 2;
[/gml]
Cita de: Clamud en Abril 18, 2015, 06:55:45 PM
Puedes agregar esta línea de código
[gml]
if( keyboard_check_released(vk_up) and vsp<0 ) vsp /= 2;
[/gml]
me puedes explicar que hace mas o menos?
Yo lo que entiendo mas o menos no se si estoy bien pero bueno. :D
significa que si dejas de apretar le tecla up chequea una variable que en este caso es vsp dice que si la variable vspe es meno a cero di dividirá la variable entre 2 que es lo que hace eso nose pero por lo que veo es eso.
Cita de: quiero aprender en Abril 18, 2015, 08:31:32 PM
Yo lo que entiendo mas o menos no se si estoy bien pero bueno. :D
significa que si dejas de apretar le tecla up chequea una variable que en este caso es vsp dice que si la variable vspe es meno a cero di dividirá la variable entre 2 que es lo que hace eso nose pero por lo que veo es eso.
si, yo tambien entiendo eso pero no entiendo muy bien.
Al soltar la tecla de salto (vk_up) si vsp (vertical speed) es menor a cero, es decir, que se mueve hacia arriba, la velocidad se reduce a la mitad, por lo que el personaje subirá menos y el cambio de velocidad no es muy brusco.