◈부모 오브젝트(parent)
parent의 설정은 오브젝트에서 설정할 수 있습니다.
(▲오브젝트 속성)
parent의 설정으로 그룹의 대표를 지정할 수 있습니다.
이것은 게임 상에서 서로 다른 오브젝트들의 공통적인 오브젝트를 parent 로 지정함으로써 parent 오브젝트를 통해
모두 제어가 가능하다는 이야기입니다.
예를 들어 아래와 같은 오브젝트가 있을 때,
obj_unit1, obj_unit2, obj_unit3 ....
여러개의 오브젝트, 또는 서로 다른 오브젝트들이 게임상에 생성되었고, 그들의 공통된 parent가 obj_player라는
오브젝트가 지정되었다면, obj_player오브젝트만으로 그들을 모두 제어 할수 있습니다.
이들은 아래와 같이 간단하게 with문을 통하여 제어할 수 있습니다.
예)
with(obj_player){instance_destroy();}//obj_player를 parent로 설정된 모든 오브젝트를 게임상에서 파기함. with(obj_player){direction=180;speed=2;} //obj_player를 parent로 설정된 모든 오브젝트의 방향을 180도로 변경한뒤 2의 속도로 이동함. |
또한 parent오브젝트를 통해 직접 좌표를 지정할 수도 있고, 충돌 이벤트를 구성할 때도
parent 오브젝트를 지정하면 따로 따로 처리 하지 않아도 제어하기가 매우 쉬워집니다.
그리고 무엇보다도 자식 오브젝트들에게 이벤트를 상속시킬 수 있다는 점입니다.
만약 parent 오브젝트에 Create 이벤트가 있다면, 자식 오브젝트들에게 이벤트를 따로 만들지 않아도
parent 오브젝트에 지정된 이벤트를 자식 오브젝트에서도 실행시킬 수 있다는 것이죠.
주의 해야 할 것은 parent 오브젝트와 자식 오브젝트에 동일한 이벤트가 있을 경우, 자식 오브젝트의
이벤트를 우선시하여 자식 오브젝트의 이벤트만 실행된다는 점입니다.
그래서 parent 오브젝트의 이벤트도 실행시키려면,
event_inherited()
함수를 사용하여 해당 이벤트에 parent 오브젝트의 이벤트를 호출 시켜야 합니다.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초]게임메이커 한글 스크립터와 스튜디오의 한글폰트 설정 (8) | 2013.05.16 |
---|---|
[게임메이커강좌-기초]충돌 이벤트(collision event) (0) | 2013.04.17 |
[게임메이커강좌-기초]오브젝트의 깊이(depth) (1) | 2013.04.16 |
[게임메이커강좌-기초]글로벌변수와 로컬변수 (2) | 2013.04.13 |
[게임메이커강좌-기초]스프라이트(sprite)및 마스크(mask) (4) | 2013.04.13 |
댓글