GMS2에서 플레이어가 통과할 수 없는 벽을 만들어 보겠다.
// 방법 1
if(keyboard_check(vk_left)&&place_free(x-mspeed,y))
{
x-=mspeed;
}
if(keyboard_check(vk_right)&&place_free(x+mspeed,y))
{
x+=mspeed;
}
if(keyboard_check(vk_up)&&place_free(x,y-mspeed))
{
y-=mspeed;
}
if(keyboard_check(vk_down)&&place_free(x,y+mspeed))
{
y+=mspeed;
}
// 방법 2
if(keyboard_check(vk_left)&&!place_meeting(x-mspeed,y,obj_wall))
{
x-=mspeed;
}
if(keyboard_check(vk_right)&&!place_meeting(x+mspeed,y,obj_wall))
{
x+=mspeed;
}
if(keyboard_check(vk_up)&&!place_meeting(x,y-mspeed,obj_wall))
{
y-=mspeed;
}
if(keyboard_check(vk_down)&&!place_meeting(x,y+mspeed,obj_wall))
{
y+=mspeed;
}
- place_free(x, y) : (x, y)좌표에 solid 인스턴스가 있는지 확인하고, 없으면 true, 있으면 false를 반환함
- place_meeting(x, y, obj) : (x, y)좌표에 obj에 해당하는 인스턴스가 있는지 확인하고, 있으면 true, 없으면 false를 반환함