///CREATE
spd = 2
hspd = 0
vspd = 0
rotateSpd = 3//30
rspd = 0
/// STEP:
hspd = -keyboard_check(ord("A")) + keyboard_check(ord("D"))
vspd = -keyboard_check(ord("S")) + keyboard_check(ord("W"))
hspd *= spd
vspd *= spd
//direction = point_direction(x,y,mouse_x,mouse_y)
rspd = keyboard_check(ord("A")) + -keyboard_check(ord("D"))
direction += rspd * rotateSpd
image_angle = direction
if(keyboard_check(ord("W")))speed = 2
else if(keyboard_check(ord("S")))speed = -2
else speed = 0
//Collisions
var _nX = x+lengthdir_x(hspd,direction-45)
if(place_meeting(_nX,y,obj_wall))
{
while(!place_meeting(x+lengthdir_x(sign(hspd),direction-45),y,obj_wall))
{
x += lengthdir_x(sign(hspd),direction-45)
}
_nX = 0
hspd = 0
}
x += lengthdir_x(hspd,direction-45)
//
var _nY = y+lengthdir_y(vspd,direction+45)
if(place_meeting(x,_nY,obj_wall))
{
while(!place_meeting(x,y+lengthdir_y(sign(vspd),direction+45),obj_wall))
{
y += lengthdir_y(sign(vspd),direction+45)
}
_nY = 0
vspd = 0
}
y += lengthdir_y(vspd,direction+45)