//solid object collisions
if vspeed > 0 and ((collision_rectangle(bbox_left,bbox_bottom,bbox_right,bbox_bottom,obj_solid,1,1)) or (collision_rectangle(bbox_left,bbox_bottom,bbox_right,bbox_bottom+vspeed,obj_solid,1,1)))
{move_contact_solid(270, 8) move_outside_solid(90,4) gravity =0 vspeed = 0}
if vspeed < 0 and ((collision_rectangle(bbox_left,bbox_top,bbox_right,bbox_top,obj_solid,1,1)) or (collision_rectangle(bbox_left,bbox_top+vspeed,bbox_right,bbox_top,obj_solid,1,1)))
{move_contact_solid(90, 8) move_outside_solid(270,4) vspeed = 0}
if hspeed > 0 and ((collision_rectangle(bbox_right,bbox_top,bbox_right,bbox_bottom,obj_solid,1,1)) or (collision_rectangle(bbox_right,bbox_top,bbox_right+hspeed,bbox_bottom,obj_solid,1,1)))
{move_contact_solid(0, 8) move_outside_solid(180,4) hspeed = 0}
if hspeed < 0 and ((collision_rectangle(bbox_left,bbox_top,bbox_left,bbox_bottom,obj_solid,1,1)) or (collision_rectangle(bbox_left+hspeed,bbox_top,bbox_left,bbox_bottom,obj_solid,1,1)))
{move_contact_solid(180, 8) move_outside_solid(0,4) hspeed = 0}These codes sometimes cause errors like the player getting stuck 1 or 2 pixels into a wall (obj_solid), I need him to not ever do this. What good alternatives could I use to my own codes?











