W
Willowwisp001
Guest
What i have so far
Code:
//Get the player's input
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_enter);
key_jump_held = keyboard_check(vk_enter);
key_down = keyboard_check(vk_down);
//React to inputs
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;
//Jumps
if (place_meeting(x,y+1,obj_wall))
{
jumps = jumpsmax;
}
else
{
if (jumps == jumpsmax) jumps -=1;
}
if (key_jump) && (jumps > 0)
{
jumps -= 1;
vsp = -jumpspeed;
}
if (vsp < 0) && (!key_jump_held) vsp = max(vsp,-jumpspeed/2)
var hsp_final = hsp + hsp_carry;
hsp_carry = 0;
//Horizontal Collision
if (place_meeting(x+hsp_final,y,obj_wall))
{
while(!place_meeting(x+sign(hsp_final),y,obj_wall))
{
x += sign(hsp_final);
}
hsp_final = 0;
hsp = 0;
}
x += hsp_final;
//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;
//Animate
if (move!=0) image_xscale = move;
if (place_meeting(x,y+1,obj_wall))
{
if (move!=0)
{
sprite_index = spr_player_run;
image_speed = 1;
}
else sprite_index = spr_player_idle; image_speed = 0.5;
}
else
{
if (vsp < 0) sprite_index = spr_player_jump; else sprite_index = spr_player_fall;
}