객체 파괴 위치 설명서
이 문서는 특정 위치에서 객체를 파괴하는 방법을 설명합니다. 주어진 위치에서 모든 인스턴스를 파괴하며, 인스턴스의 Destroy Event와 Clean Up Event를 호출합니다. 이 동작은 인스턴스의 충돌 마스크에 기반하며, 마스크의 일부가 지정한 위치와 겹치는 경우 해당 인스턴스가 파괴됩니다. 만약 인스턴스에 스프라이트나 마스크가 적용되지 않은 경우, 인스턴스는 파괴되지 않습니다.
동작 구문
인자 설명
| 인자 | 설명 |
|---|---|
| x | 방(room)에서 사용할 x 위치 |
| y | 방(room)에서 사용할 y 위치 |
예제
다음은 스페이스 키가 눌릴 때 인스턴스를 파괴하는 예제 코드입니다:
if (keyboard_check_pressed(vk_space)) {
instance_destroy_at(x, y);
}
위 코드는 스페이스 키가 눌렸을 때 현재 인스턴스의 위치에서 모든 인스턴스를 파괴합니다.
다양한 활용 방식
이 기능을 활용하는 몇 가지 추가 예제를 소개합니다.
1. 특정 지역에서의 적 제거
특정 지역에 있는 적을 제거할 때 사용할 수 있습니다. 예를 들어, 플레이어가 적을 처치하고자 할 때 사용할 수 있습니다:
if (player_attacks) {
instance_destroy_at(enemy.x, enemy.y);
}
2. 장치 파괴 효과
장치에 충돌할 경우 파괴할 수 있습니다. 예를 들어, 폭탄이 터졌을 때 주변의 모든 인스턴스가 파괴되는 상황입니다:
if (bomb_exploded) {
instance_destroy_at(bomb.x, bomb.y);
}
3. 범위 내 모든 인스턴스 파괴
특정 범위 내의 모든 인스턴스를 파괴하는 방법입니다. 이를 위해 collision_circle 사용:
if (key_check(vk_enter)) {
var instance_list = instance_position(x, y, obj_enemy);
for (var i = 0; i < array_length(instance_list); i++) {
if (instance_list[i] != noone) {
instance_destroy(instance_list[i]);
}
}
}
이 코드는 엔터 키를 눌렀을 때 주위의 모든 적 인스턴스를 파괴합니다.
결론
위에서 설명한 Destroy At Position 기능은 게임 내 다양한 상황에서 인스턴스를 효율적으로 파괴하는 데 유용합니다. 상황에 맞게 조합하여 사용하면 더욱 풍부한 게임 경험을 제공할 수 있습니다.