position_meeting 함수 설명
position_meeting
함수는 특정 위치에서 다른 인스턴스나 객체와 충돌 여부를 확인하는 데 사용됩니다. 이 함수를 사용하면 방 안의 단일 점에서 인스턴스나 객체와의 충돌을 검사할 수 있습니다. 충돌 검사는 인스턴스의 경계 상자 또는 인스턴스가 정밀 충돌을 체크한 경우에는 마스크를 기준으로 수행됩니다. 충돌한 객체의 고유 인스턴스 ID를 얻고 싶다면 instance_position()
함수를 사용해야 합니다.
문법
position_meeting(x, y, obj);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
x | Real | 확인할 x 위치 |
y | Real | 확인할 y 위치 |
obj | Object | 객체 자산, 객체 인스턴스, 타일 맵 요소 ID, 키워드(all/other), 또는 이러한 항목을 포함하는 배열 |
반환값
- Boolean: 충돌 여부에 따라 true 또는 false를 반환합니다.
활용 예제
예제 1: 마우스 클릭 시 벽 생성
if (mouse_check_button(mb_left)) {
if (!position_meeting(mouse_x, mouse_y, all)) {
instance_create_layer(mouse_x, mouse_y, "Walls", obj_Wall);
}
}
위 코드는 왼쪽 마우스 버튼이 클릭되었을 때, 마우스의 x/y 위치에서 어떤 인스턴스와 충돌하지 않는다면 "obj_Wall" 인스턴스를 생성합니다.
예제 2: 플레이어가 장애물에 부딪히는지 확인
if (position_meeting(x, y + 1, obj_Obstacle)) {
// 장애물에 부딪혔을 때의 행동
}
이 코드는 플레이어의 현재 위치에서 아래쪽으로 1픽셀 이동한 위치에 장애물과 충돌하는지 확인합니다.
예제 3: 특정 객체와의 충돌 확인
if (position_meeting(x, y, obj_Enemy)) {
// 적과 충돌했을 때의 행동
}
이 코드는 플레이어가 적 객체와 충돌했는지를 확인합니다.
예제 4: 타일 맵 충돌 확인
if (position_meeting(x, y, tile_map)) {
// 타일 맵과 충돌했을 때의 행동
}
이 코드는 특정 타일 맵과의 충돌 여부를 확인합니다.
예제 5: 여러 객체와의 충돌 확인
var colliding = position_meeting(x, y, [obj_Enemy, obj_Obstacle]);
if (colliding) {
// 적이나 장애물과 충돌했을 때의 행동
}
이 코드는 적이나 장애물 중 하나와 충돌했는지를 확인합니다.