Estoy aprendiendo a programar y estoy haciendo un pequeño juego de plataformas para practicar y tal, pero tengo un problema y es que, no consigo hacer que el personaje salte con la animación de salto. Tengo 3 bloques en step que son los y uno en create con lo sig comandos siguientes:
CREATE
mov = 0
v = 4;
vv = 0;
vh = 0;
vsalto = -10
STEP
Declarar Movimiento
der = keyboard_check(ord ("D"))
izq = -keyboard_check(ord ("A"))
salto = keyboard_check_pressed(ord("W"))
mov = der + izq
vh = v * mov
Velocidad Vertical
///Gravedad
if (vv < 30) && !place_meeting(x,y+1,object1){
vv=vv+1
}
//Detecta la colisión con el suelo
if (place_meeting(x,y+vv,object1)){
while(!place_meeting(x,y+sign(vv),object1 )){
y = y + sign(vv)}
vv = 0
}
//salto
if (place_meeting(x,y+1,object1)&& salto){
vv = vsalto
}
//Declara el movimiento vertical a la y
y = y + vv
Velocidad horizontal
///Colisión horizontal
if place_meeting(x + vh,y,object1){
while(!place_meeting(x+sign(vh),y,object1 )){
x = x + sign(vh)
}
vh = 0
}
//Animación horizontal
if vh == +4{
image_xscale = 1
sprite_index = spr_andando
image_speed = 0.3}
if vh == 0{
sprite_index = sprite0
image_speed = 0.5
}
if vh == -4{
image_xscale = -1
sprite_index = spr_andando
image_speed = 0.3
}
///Estableciendo variables
x = x + vh; ///x tendra el valor de vh
Aclarar que sprite0 es el spite en el que esta el personaje parado y el sprite1 es el bloque.
CREATE
mov = 0
v = 4;
vv = 0;
vh = 0;
vsalto = -10
STEP
Declarar Movimiento
der = keyboard_check(ord ("D"))
izq = -keyboard_check(ord ("A"))
salto = keyboard_check_pressed(ord("W"))
mov = der + izq
vh = v * mov
Velocidad Vertical
///Gravedad
if (vv < 30) && !place_meeting(x,y+1,object1){
vv=vv+1
}
//Detecta la colisión con el suelo
if (place_meeting(x,y+vv,object1)){
while(!place_meeting(x,y+sign(vv),object1 )){
y = y + sign(vv)}
vv = 0
}
//salto
if (place_meeting(x,y+1,object1)&& salto){
vv = vsalto
}
//Declara el movimiento vertical a la y
y = y + vv
Velocidad horizontal
///Colisión horizontal
if place_meeting(x + vh,y,object1){
while(!place_meeting(x+sign(vh),y,object1 )){
x = x + sign(vh)
}
vh = 0
}
//Animación horizontal
if vh == +4{
image_xscale = 1
sprite_index = spr_andando
image_speed = 0.3}
if vh == 0{
sprite_index = sprite0
image_speed = 0.5
}
if vh == -4{
image_xscale = -1
sprite_index = spr_andando
image_speed = 0.3
}
///Estableciendo variables
x = x + vh; ///x tendra el valor de vh
Aclarar que sprite0 es el spite en el que esta el personaje parado y el sprite1 es el bloque.