적용 대상(Action Scope) 문서 해설
Apply To... 액션은 이후에 연결된 모든 액션의 작동 범위(Action Scope)를 변경하는 데 사용됩니다. If Variable 액션과 비슷하게, Apply To... 액션의 오른쪽에 추가된 액션은 지정된 객체 또는 인스턴스에서 실행됩니다. 범위는 액션의 오른쪽 상단에 있는 작은 화살표를 클릭하여 표시되는 팝업 메뉴에서 선택할 수 있습니다. 이를 통해 여러 액션을 실행할 객체 집합 또는 인스턴스 ID가 있는 단일 인스턴스를 설정한 다음, 현재 객체의 코드에 대해 계속 진행할 수 있습니다.
액션 추가 방법
"Applies To" 블록에 액션을 추가하려면, 액션의 옆에 드래그하여 놓아야 합니다. 아래 이미지를 참조하십시오:
+------------------+
|Apply To...|
|---|
|...|
+------------------+
이제 "Applies To" 블록에서 지정된 객체 또는 인스턴스에서 액션이 실행되며, 다른 곳에 놓인 액션은 "Applies To" 블록 이후에 수행됩니다.
액션 구문(Action Syntax):
적용할 액션의 문법은 아래와 같습니다.
if variable == 100 {
apply_to(obj_Player);
set_sprite();
}
예시(Example):
위의 액션 블록 코드는 변수를 확인해 100과 같으면 범위를 "obj_Player" 인스턴스로 변경하고, 이 인스턴스에 Set Sprite 액션을 실행하도록 지시합니다. 이 시점에서 방 안의 모든 "obj_Player" 인스턴스는 스프라이트가 변경됩니다. 이후, 전체 코드 블록을 실행 중인 인스턴스의 변수를 1 증가시킵니다.
| 액션 | 설명 | 예 |
|---|---|---|
| Apply To | 여러 인스턴스를 지정하여 액션 실행 | apply_to(obj_Player) |
| Set Sprite | 지정된 인스턴스의 스프라이트 변경 | set_sprite() |
| If Variable | 변수가 특정 값과 같은지 확인 | if variable == 100 |
| Add | 변수를 증가시키기 | variable += 1 |
활용 및 응용 예제
아래는 Apply To... 액션을 다양한 상황에서 활용하는 방법의 예입니다.
예제 1: 여러 적들이 같은 행동을 취하게 만들기
if enemy_count >= 5 {
apply_to(obj_Enemy);
set_attack_mode();
}
위 코드는 적의 수가 5 이상일 경우, 모든 obj_Enemy 인스턴스의 공격 모드를 설정합니다.
예제 2: 플레이어가 특정 아이템을 소지하고 있을 때 스프라이트 변경
if inventory["health_potion"] > 0 {
apply_to(obj_Player);
change_sprite("sprite_with_item");
}
플레이어가 건강 포션을 소지하고 있으면, 플레이어의 스프라이트를 변경합니다.
예제 3: 게임 상태에 따라 이벤트 처리 변경
if game_state == "level_complete" {
apply_to(obj_Player);
grant_experience(100);
}
게임 상태가 '레벨 완료'일 때 모든 플레이어 인스턴스에게 경험치를 부여합니다.
위의 예들을 통해 Apply To... 액션이 어떻게 활용될 수 있는지 알 수 있습니다. 다양한 상황에서 객체와 인스턴스의 범위를 조정하여 원하는 결과를 얻을 수 있습니다.