인스턴스 비활성화 하기
instance_deactivate_all 함수는 코드가 실행되는 순간, 현재 방에 있는 모든 인스턴스를 비활성화합니다. "notme" 플래그가 false로 설정된 경우에는 코드를 실행하는 인스턴스도 포함될 수 있지만, 보통은 현재 인스턴스가 활성화 상태로 유지되기를 원하므로 이 플래그를 true로 설정하는 것이 좋습니다. 비활성화는 즉각적으로 이루어지지 않으며, 이렇게 비활성화된 인스턴스는 함수가 호출된 이벤트의 끝까지 비활성 상태로 간주되지 않습니다.
문법
instance_deactivate_all(notme);
매개변수
| 매개변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| notme | Boolean | 호출 인스턴스를 활성화할지 여부 (true: 유지, false: 비활성화) |
반환 값
- N/A
예제 코드
다음 코드는 현재 코드를 실행하고 있는 인스턴스를 제외한 모든 인스턴스를 비활성화한 후, 방 내의 특정 영역을 활성화합니다.
instance_deactivate_all(true);
var _vx = camera_get_view_x(view_camera[0]);
var _vy = camera_get_view_y(view_camera[0]);
var _vw = camera_get_view_width(view_camera[0]);
var _vh = camera_get_view_height(view_camera[0]);
instance_activate_region(_vx - 64, _vy - 64, _vw + 128, _vh + 128, false);
활용 예제
1. 게임의 일시 정지 기능 구현
게임 내에서 일시 정지 기능을 구현하려면 모든 인스턴스를 비활성화할 수 있습니다.
if (keyboard_check_pressed(vk_escape)) {
instance_deactivate_all(true); // 현재 인스턴스는 활성화
show_message("게임이 일시 정지되었습니다.");
}
2. 특정 지역만 활성화하기
주어진 좌표의 특정 영역 내에 있는 인스턴스만 활성화하고, 나머지는 비활성화할 수 있습니다.
instance_deactivate_all(true); // 현재 인스턴스 유지
// 특정 영역 활성화
var _region_x = 100;
var _region_y = 100;
var _region_width = 200;
var _region_height = 200;
instance_activate_region(_region_x, _region_y, _region_width, _region_height, false);
3. 특정 인스턴스 제외하기
특정 인스턴스를 제외하고 비활성화하는 방법입니다. 인스턴스 ID를 사용하여 원하는 인스턴스를 보호할 수 있습니다.
var my_instance = id; // 현재 인스턴스의 ID
instance_deactivate_all(true); // 현재 인스턴스 유지
// 만약 특정 인스턴스를 다시 활성화하고 싶다면
instance_activate(my_instance); // 현재 인스턴스 활성화
결론
위의 내용을 통해 instance_deactivate_all 함수를 효과적으로 활용할 수 있습니다. 게임 로직에서 인스턴스의 상태를 조절하여 다양한 효과를 낼 수 있습니다.