event_inherited 함수 설명
event_inherited 함수는 현재 이벤트의 부모 객체 버전을 호출하는 기능을 제공합니다. 예를 들어, obj_B라는 자식 객체의 Step 이벤트에서 이 함수를 호출하면, obj_A라는 부모 객체의 Step 이벤트가 실행됩니다. 이 함수는 객체의 이벤트 외부에서 호출할 수 없으며, 다른 곳에서는 사용할 수 없습니다.
기본 개념
- 상속: 인스턴스가 부모 객체를 가지면, 부모의 모든 이벤트를 자동으로 상속받습니다.
- 이벤트 오버라이드: 자식 객체에서 부모의 Create 이벤트를 오버라이드하면, 자식 객체의 모든 인스턴스는 부모의 Create 이벤트 대신 자식의 새로운 Create 이벤트를 실행합니다.
- 부모 이벤트와 자식 이벤트의 사용: 동일한 유형의 부모 이벤트와 자식 이벤트를 모두 사용해야 할 경우,
event_inherited함수를 사용하여 부모 이벤트를 실행한 후 자식 이벤트의 나머지 코드나 동작을 계속 진행할 수 있습니다.
문법
event_inherited();
반환값
- N/A (반환값 없음)
예제
event_inherited();
switch (sprite_index) {
case spr_Enemy_1:
dmg += 2;
break;
case spr_Enemy_4:
dmg -= 1;
break;
case spr_Enemy_10:
dmg += 10;
break;
}
위의 코드는 상속된 부모 이벤트를 호출하여 "dmg" 변수를 초기화한 후, "dmg" 변수를 수정합니다. 만약 이 코드를 실행하는 인스턴스에 부모가 지정되어 있지 않다면, "unknown variable" 오류가 발생합니다. 이는 "dmg"가 정의되지 않았기 때문입니다.
활용 및 응용 예제
| 예제 번호 | 설명 | 코드 |
|---|---|---|
| 1 | 부모의 Create 이벤트와 자식의 Create 이벤트를 모두 사용 | gml event_inherited(); // 부모 이벤트 호출 // 자식 이벤트 코드 추가 |
| 2 | 자식 객체에서 부모의 이벤트를 수정 | gml event_inherited(); // 부모 이벤트 호출 // 자식 이벤트에서 추가 로직 |
| 3 | 특정 조건에 따라 부모 이벤트 호출 | gml if (condition) { event_inherited(); } // 조건에 따라 부모 이벤트 호출 |
| 4 | 부모 이벤트에서 초기화 후 자식 이벤트에서 처리 | gml event_inherited(); // 부모 이벤트에서 초기화 // 자식 이벤트에서 추가 처리 |
이와 같이 event_inherited 함수를 활용하면 부모 객체의 이벤트를 호출하면서 자식 객체의 이벤트를 유연하게 조정할 수 있습니다.