인스턴스 레이어 활성화 함수 설명
이 문서에서는 instance_activate_layer 함수에 대해 설명하고, 이를 활용하는 다양한 예제를 제공합니다. 이 함수는 이전에 비활성화된 레이어를 다시 활성화하는 데 사용됩니다.
함수 설명
instance_activate_layer 함수는 비활성화된 레이어를 활성화합니다. 이 함수에 전달할 매개변수로는 레이어 핸들이 필요하며, 이는 코드 편집기에서 작성된 레이어의 이름(string)일 수도 있고, layer_create에서 반환된 실제 레이어 핸들일 수도 있습니다. 해당 레이어에 있는 모든 비활성화된 인스턴스가 다시 활성화됩니다.
주의: 지속적인 인스턴스가 있는 레이어를 비활성화한 경우, 방을 변경하기 전에 이 함수를 사용하여 레이어를 다시 활성화해야 합니다. 그렇지 않으면 지속적인 인스턴스가 유지되지 않고 삭제됩니다. 또한, 활성화는 즉각적으로 이루어지지 않으며, 이 방식으로 활성화된 인스턴스는 함수가 호출된 이벤트의 끝까지는 활성 상태로 간주되지 않습니다.
문법
instance_activate_layer(layer_id);
매개변수
| 매개변수명 | 유형 | 설명 |
|---|---|---|
| layer_id | Layer 또는 String | 사용할 레이어 이름 문자열(또는 레이어 핸들) |
반환 값
- N/A
예제 코드
다음 코드는 방 안의 모든 인스턴스를 활성화한 후, 현재 카메라 뷰의 범위를 벗어난 인스턴스를 비활성화합니다. 단, "Player_Layer" 레이어에 있는 인스턴스는 다시 활성화됩니다.
instance_activate_all();
var _cam = view_camera[0];
var _vx = camera_get_view_x(_cam);
var _vy = camera_get_view_y(_cam);
var _vw = camera_get_view_width(_cam);
var _vh = camera_get_view_height(_cam);
instance_deactivate_region(_vx - 64, _vy - 64, _vw + 128, _vh + 128, false, false);
instance_activate_layer("Player_Layer");
활용 및 응용 예제
1. 레이어의 인스턴스 활성화
어떤 게임에서는 특정 레이어만 플레이어가 접근할 수 있도록 설정할 수 있습니다. 다음의 예제에서는 "Enemy_Layer" 레이어를 비활성화하고, 일정 시간 후 활성화합니다.
// Enemy_Layer 비활성화
instance_deactivate_layer("Enemy_Layer");
// 일정 시간 후 Enemy_Layer 활성화
alarm[0] = room_speed * 5; // 5초 후
2. 특정 조건에 따라 레이어 활성화
게임에서 특정 조건이 충족되었을 때 적 또는 객체가 다시 나타나게 할 수 있습니다.
if (score >= 100) {
instance_activate_layer("PowerUps_Layer"); // 점수가 100 이상일 때 PowerUps_Layer 활성화
}
3. 특정 레이어에서의 상호작용 제한
일부 레이어의 인스턴스와의 상호작용을 제한하기 위해 비활성화할 수 있습니다.
if (level_completed) {
instance_deactivate_layer("Obstacle_Layer"); // 레벨이 완료되면 장애물 레이어 비활성화
}
이 문서가 instance_activate_layer 함수를 이해하고 활용하는 데 도움이 되길 바랍니다. 각 예제를 통해 함수의 사용 방법을 명확히 할 수 있습니다.