본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초]부모 오브젝트(parent)

by 타락카얀 2013. 4. 17.
728x90



◈부모 오브젝트(parent)



parent의 설정은 오브젝트에서 설정할 수 있습니다.



(▲오브젝트 속성)


parent의 설정으로 그룹의 대표를 지정할 수 있습니다.
이것은 게임 상에서 서로 다른 오브젝트들의 공통적인 오브젝트를 parent 로 지정함으로써 parent 오브젝트를 통해

모두 제어가 가능하다는 이야기입니다.
예를 들어 아래와 같은 오브젝트가 있을 때,



     obj_unit1, obj_unit2, obj_unit3 ....


여러개의 오브젝트, 또는 서로 다른 오브젝트들이 게임상에 생성되었고, 그들의 공통된 parentobj_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 오브젝트의 이벤트를 호출 시켜야 합니다.





300x250

댓글