GameMaker Studio에서 noone 키워드 사용하기
게임을 프로그래밍하다 보면 특정 위치에 인스턴스가 없는지 확인해야 할 때가 많습니다. 이런 경우에 noone 키워드를 사용하여 아무것도 없음을 체크할 수 있습니다.
noone 키워드 설명
noone은 GameMaker Studio에서 특정 객체가 없음을 나타내는 키워드입니다. 주로 인스턴스를 검색할 때 사용되며, 인스턴스가 존재하지 않으면 noone을 반환합니다.
예제 코드
if (instance_nearest(x, y, obj_enemy) != noone) {
// 근처에 적 인스턴스가 있습니다.
// 어떤 작업을 수행합니다.
}
위 예제에서 instance_nearest(x, y, obj_enemy) 함수는 주어진 좌표(x, y) 주변에서 가장 가까운 obj_enemy 인스턴스를 반환합니다. 만약 적 인스턴스가 없다면 noone이 반환됩니다.
with문과 함께 사용하기
noone은 with 문과 함께 사용할 수도 있습니다. 예를 들어, 다음 코드를 살펴보세요:
with (instance_nearest(x, y, obj_enemy)) {
// 적 인스턴스가 근처에 있습니다.
// 특정 행동을 수행합니다.
}
이 경우, instance_nearest가 인스턴스를 반환하면 중괄호 { } 안의 코드가 실행됩니다. 만약 noone이 반환되면 해당 코드는 실행되지 않습니다.
변수에 noone 할당하기
noone은 변수에 값을 할당하여 결과를 저장하는 데도 유용합니다:
// Create Event
ins_last_collided_with = noone;
// Collision Event
ins_last_collided_with = other.id; // 충돌한 객체의 ID 저장
위 코드에서는 충돌이 발생하기 전에는 ins_last_collided_with 변수를 noone으로 초기화하고, 충돌이 일어나면 해당 인스턴스의 ID를 저장합니다.
활용 예시
| 상황 | 코드 예시 | 설명 |
|---|---|---|
| 근처 적 확인 | gml if (instance_nearest(x, y, obj_enemy) != noone) { /* 적과 충돌 */ } |
근처에 적이 있는지 확인 |
| 특정 행동 수행 | gml with (instance_nearest(x, y, obj_enemy)) { /* 공격 */ } |
근처 적에게 공격하는 행동 수행 |
| 변수 초기화 및 사용 | gml ins_last_collided_with = noone; /* ... */ ins_last_collided_with = other.id; |
충돌한 객체의 ID를 저장 |
이렇게 noone 키워드를 사용하여 게임에서 인스턴스를 효과적으로 체크하고 관리할 수 있습니다.