this is the code i have now for movement and gravity
//get player input
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);
key_jump = keyboard_check(vk_up);
key_shoot = keyboard_check_pressed(vk_space);
//calculate movement
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv
if (place_meeting(x,y+1,obj_blockbasic)) && (key_jump)
{
vsp = -7
}
// horizontal collision
if (place_meeting(x+hsp,y,obj_blockbasic))
{
while (!place_meeting(x+sign(hsp),y,obj_blockbasic))
{
x = x + sign(hsp);
}
hsp = 0;
}
x = x + hsp;
// vertical collision
if (place_meeting(x,y+vsp,obj_blockbasic))
{
while (!place_meeting(x,y+sign(vsp),obj_blockbasic))
{
y = y + sign(vsp);
}
vsp = 0;
}
y = y + vsp;