G
gamedragonify
Guest
I'm having a problem where if I hold left, up, and press the jump button, my character won't jump. Just holding left and jumping works, holding up and jumping works, holding right and jumping works, and holding right and up and jumping works.
This is the code I used, I've been through it a hundred times but can't find the problem with it. Can anyone here help me?
This is the code I used, I've been through it a hundred times but can't find the problem with it. Can anyone here help me?
Code:
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);
//React to inputs
if(can_move = true)
{
move = key_left + key_right;
hsp = move * movespeed;
}
if (vsp < 10) vsp += grav;
if (place_meeting(x,y+1,obj_wall))
{
jumps = maxjumps
rising_spark = 1
}
if key_jump && (jumps > 0)
{
jumps -= 1;
vsp = key_jump * -jumpspeed;
}
//Horizontal Collision
if (place_meeting(x+hsp,y,obj_wall))
{
while(!place_meeting(x+sign(hsp),y,obj_wall))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
while(!place_meeting(x,y+sign(vsp),obj_wall))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
//Arrow Keys
if keyboard_check(vk_right) && can_move = true
{
sprite_index = Player_Walk_R1;
}
if keyboard_check_released(vk_right)
{
sprite_index = Player_Stand_R
}
if keyboard_check(vk_left) && can_move = true
{
sprite_index = Player_Walk_L
}
if keyboard_check_released(vk_left)
{
sprite_index = Player_Stand_L
}
//Attacking
if keyboard_check_pressed(ord("Z")) && sprite_index = Player_Stand_R
{
sprite_index = Player_PunchR;
can_move = false;
alarm_set(0,6)
}
if keyboard_check_pressed(ord("Z")) && sprite_index = Player_Walk_R1
{
sprite_index = Player_PunchR;
can_move = false;
alarm_set(0,6)
}
if keyboard_check_pressed(ord("Z")) && sprite_index = Player_Stand_L
{
sprite_index = Player_PunchL;
can_move = false;
alarm_set(1,6)
}
if keyboard_check_pressed(ord("Z")) && sprite_index = Player_Walk_L
{
sprite_index = Player_PunchL;
can_move = false;
alarm_set(1,6)
}
//Specials
if keyboard_check_pressed(ord("X")) && sprite_index = Player_Stand_R && can_shoot = true
{
instance_create(Player.x,Player.y,obj_arrowR);
can_shoot = false;
alarm_set(2,15);
}
if keyboard_check_pressed(ord("X")) && sprite_index = Player_Walk_R1 && can_shoot = true
{
instance_create(Player.x,Player.y,obj_arrowR);
can_shoot = false;
alarm_set(2,15);
}
if keyboard_check_pressed(ord("X")) && sprite_index = Player_Stand_L && can_shoot = true
{
instance_create(Player.x,Player.y,obj_arrowL);
can_shoot = false;
alarm_set(2,15);
}
if keyboard_check_pressed(ord("X")) && sprite_index = Player_Walk_L && can_shoot = true
{
instance_create(Player.x,Player.y,obj_arrowL);
can_shoot = false;
alarm_set(2,15);
}
if keyboard_check_pressed(ord("X")) && keyboard_check(vk_up) && rising_spark > 0
{
sprite_index = rising;
vsp = -50
can_move = false
alarm_set(0,6)
rising_spark -= 1;
}