객체(Object)를 패밀리(Family) 로 업그레이드하는 법

1

Tagged

Stats

3,499 visits, 3,949 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 25 Apr, 2013. Last updated 25 Feb, 2019

(역주 : 고속으로 대충 의역했으니 틀린 부분 있으면 거리낌없이 수정해주세요.)

프로젝트를 만들때에는 언제나 멀리 계획을 해두는 것이 좋고, 또한 언제 패밀리(Family) 가 필요할지 정해놓는 것이 말할 필요도 없이 중요합니다. 하지만, 패밀리를 만드는 작업은 까먹기 쉽고, 그래서 패밀리(Family) 로 만들때에 비해서 수도없이 많은, 특정한 객체로 만든 이벤트들을 만들기 일수입니다. 이 글에서는 어떻게 이렇게 수많은 이벤트들, 그러니까 그 객체의 이벤트 중 인스턴스 변수(instance variable) 이나 비헤비어(Behavior, 움직임) 들을 기준으로 만든(reference) 이벤트들을 패밀리(Familiy) 로 다시 몽땅 만들지 않고도 유지하면서 변환하는 방법을 보여드립니다.

예시 상황

괴물(원문 Monster) 이라는 이름의 객체가 있고, (원분에서는 Enemies) 이라는 이름의 패밀리(Family) 가 있다고 해봅시다. 이렇게하면 다른 종류의 적들을 쉽게 추가할 수 있을겁니다... 하지만 이미 괴물로 된 이벤트(Event)가 100개나 있는걸요! 이런 것들을 패밀리(Family) 로 업그레이드하는 방법을 알아봅시다.

백업 (Back up)

이 튜토리얼은 여러분의 프로젝트의 많은 부분을 바꾸는 걸 포함합니다. 만약 실수하시는 경우, 꽤나 난장판으로 끝날수도 있습니다. 그러므로 프로젝트를 일단 백업(Backup) 해두시길 바랍니다. 아직 백업하지 않으셨다면, Construct 2의 자동 백업기능을 켜두셔야 합니다.

과정

먼저, 일단 바꿀 패밀리(Family) 를 만들어야 합니다. 기능상 비어있는 패밀리(Family)를 만들수는 없으므로, 사실 먼저 임시로 쓸 빈 객체(object) 를 만들어야 합니다. 이번 경우에는, 새 스프라이트(Sprite) 를 레이아웃(Layout) 에 추가하겠습니다. (나중에 지울거니까, 스프라이트의 이미지는 걱정하실 필요 없습니다.) 만약 Text 객체나 Tiled Background 같은 다른 종류의 객체(Object) 를 바꾸시려면, 대신 그걸 만들어주세요.

다음으로, 패밀리(Family) 를 만드세요. 이 경우에는 (원문 Enemy)이라고 이름지을겁니다. 객체 삽입창이 뜨면 (패밀리(Family) 는 비어있을 수 없기때문에), 방금 만든 빈 객체(Object) 를 넣고, OK(확인)를 누르세요.

이제 원래 객체(괴물) 에 있던 인스턴스 변수(Instance variable) 들, 비헤비어(Behaviors, 움직임) 들, 효과(이펙트, Effect) 들이랑 동일한 걸 패밀리(Family) 에 추가해주세요. 객체(Object)들은 똑같은 인스턴스 변수(Instance Variable) 들, 비헤비어(Behavior, 움직임) 들, 효과(Effect) 들을 가지고있는 객체(Object) 나 패밀리(Family) 와만 교체할 수 있습니다. 예를 들자면, 괴물체력속도라는 인스턴스 변수(Instance Variable) 들을 가지고있고, 이름이 총알인 Bullet 비헤비어가 추가되어있다면, 반드시 패밀리(Family) 에 체력속도라는 변수를 넣어야 합니다. 물론 총알 비헤비어(Behavior, 움직임) 도요.

이제 이벤트(Event) 들을 아까 만든 패밀리를 쓰도록 바꿀 수 있습니다! 이벤트 시트(Event Sheet) 로 가셔서, 모두 선택(Ctrl+A) 하시고 (객체(Object) 바꾸기 단축키인) R 키를 누르세요. 먼저 바꾸고싶은 객체를 고르고 (이 경우에는 괴물이죠.), 다음엔 아까 만든 새 패밀리(Family) 를 선택해서 바꿀 수 있습니다. 만약 아까만든 패밀리(Family) 가 보이지 않거나, there are no objectgs that it can be replaced with (바꿀 수 있는 객체가 없습니다.) 라는 메시지가 나온다면, 패밀리(Family) 에 이전의 괴물 객체랑 똑같은 인스턴스 변수(Instance variable) 들, 비헤비어(Behaviors, 움직임), 이펙트들이 똑같은 이름과 타입(Type) 으로 들어있는지 확인하세요. 만약 그 객체, 그러니까 괴물을 쓰고있는(referring) 이벤트가 있는 이벤트시트(Event Sheet) 가 여러개 있다면, 이 과정 (몽땅 선택하고 그 패밀리(Familiy) 로 대체하는 것) 을 각 이벤트 시트(Event Sheet) 에서 반복하셔야 합니다.

이제 바꾼 이벤트들이 패밀리(Family)를 쓰는 걸로 바뀌었습니다! 하지만 기존의 객체(Object), 그러니까 괴물 은 그 패밀리(Family) 에 안 들어있네요. 패밀리(Family) 의 인스턴스 변수(Instance Variable) 와 비헤비어(Behavior) 가 겹치기 때문에 아직 패밀리(Family)에 추가할 수 없습니다.

이제 원래 객체의 모든 인스턴스 변수(Instance variable) 와 모든 비헤비어(Behavior) 들, 모든 효과(Effect)들을 지웁시다. 너무 걱정하지 마세요 - 아까 모든 이벤트를 패밀리(Family)를 쓰도록 바꿔서 이제는 그 객체를 참조하는 이벤트가 없으니까요. (그리고 아까 위에서 백업도... 하셨...잖아요?)

프로젝트 막대(Project Bar) 에서, 이번 글에서 만들었던 패밀리(Family)를 편집해서 그 객체(Object)를 넣으세요. 이 경우에 괴물 객체를 패밀리(Family) 에 넣는 게 되겠네요. 또한 더 이상 임시 객체(object) 가 필요하지 않으니까, 임시 객체를 패밀리(Family)에서 제거하고, 다시 프로젝트 막대(Project Bar) 로 가서 프로젝트(Project) 에서 임시 객체(Object) 를 완전히 지워버리세요.

결과

이제 모든 이벤트가 그 객체 대신에 패밀리를 쓰고(refer), 그 객체가 이전과 똑같은 인스턴스 변수(instance variable) 들과 비헤비어(Behavior)들, 효과(Effect) 들을 포함하고 있습니다. 그래서 이전과 똑같이 작동하지만, 이제 다른 객체를 패밀리(Family) 에 추가할 수 있습니다. 패밀리의 잇점을 다른 객체 종류에게까지 적용할 수 있는거죠. 운 좋게도 어떤 면에서는 이런 게 편할겁니다!

  • 0 Comments

Want to leave a comment? Login or Register an account!