A
AnonymousAardvark
Guest
In my game, my player object gets stuck in walls and sometimes while walking stops and goes in intervals. it feels like its getting stuck in the ground.
edit: I took out the animate section, and it seemed to work perfictly. is there anyway I can animate it better?
heres my code:
key_right = keyboard_check (vk_right);
key_left = -keyboard_check (vk_left);
key_jump = keyboard_check (vk_space);
key_croutch = keyboard_check (ord("s"));
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;
if (place_meeting(x,y+1,obj_floor))
{
vsp = key_jump * -jumpspeed
}
if keyboard_check_pressed(vk_excape) game_end();
//h colitions
if (place_meeting(x+hsp,y,obj_floor))
{
while(!place_meeting(x+sign(hsp),y,obj_floor))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
//vert colitions
if (place_meeting(x,y+vsp,obj_floor))
{
while(!place_meeting(x,y+sign(vsp),obj_floor))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
//Animate
if (move!=0) image_xscale = move;
if (place_meeting(x,y+1,obj_floor))
{
if (move!=0) sprite_index = spr_fnard_running; else sprite_index = spr_fnard_standing;
image_speed = 1/6;
}
else
{
if (vsp <0) sprite_index = spr_fnard_jump; else sprite_index = spr_fnard_fall
image_speed = 1/6;
}
edit: I took out the animate section, and it seemed to work perfictly. is there anyway I can animate it better?
heres my code:
key_right = keyboard_check (vk_right);
key_left = -keyboard_check (vk_left);
key_jump = keyboard_check (vk_space);
key_croutch = keyboard_check (ord("s"));
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;
if (place_meeting(x,y+1,obj_floor))
{
vsp = key_jump * -jumpspeed
}
if keyboard_check_pressed(vk_excape) game_end();
//h colitions
if (place_meeting(x+hsp,y,obj_floor))
{
while(!place_meeting(x+sign(hsp),y,obj_floor))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
//vert colitions
if (place_meeting(x,y+vsp,obj_floor))
{
while(!place_meeting(x,y+sign(vsp),obj_floor))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
//Animate
if (move!=0) image_xscale = move;
if (place_meeting(x,y+1,obj_floor))
{
if (move!=0) sprite_index = spr_fnard_running; else sprite_index = spr_fnard_standing;
image_speed = 1/6;
}
else
{
if (vsp <0) sprite_index = spr_fnard_jump; else sprite_index = spr_fnard_fall
image_speed = 1/6;
}
Last edited by a moderator: