현재 이리저리 뜯어보며 abs 비슷한거라도 만들겠다고 설치는 초보입니다.
일단은 어떤 인풋에따라 공격하는 sprite 나오는것(스프라이트_웨폰 사용), hud, 어떤 버튼을 눌렀을때 멤버가 바뀌는것, 까지 만들었습니다.
그런데 만들면서도 이리저리 소스를 긁어모으고 수정하다보니 배틀러, 액터, 캐릭터의 관계가 좀 모호하더라구요.
일단 제가 생각한것은요,
화면 맵상에 뿌려져서 조종하는것은 게임_캐릭터객체 이고, 턴제배틀에서 나오는 캐릭터는 게임_캐릭터 객체가 아니라 게임_배틀러
이며, 공격이미지와 데미지 같은 전투와 관련된 것은 게임_배틀러 객체에 있다고 이해했습니다.
따라서 abs를 만들기위해서 게임_배틀러에 구현되있는것들중 많은것을 게임_캐릭터상에도 구현해야하구요.
그런데 게임_액터 객체가 또 모호하더라구요. $gameParty의 멤버로 표현되는것은 액터객체들의 배열인데, 이부분이 캐릭터와 어떻게 매핑이되는지 상당히 헛갈립니다.
제가 짐작한 부분이 맞는지, 혹은 액터-배틀러-캐릭터 간의 관계를 설명해주셨으면해서 도움글을 부탁드립니다.
MV와 MV의 스크립트에 대해서 잘 모르기 때문에 굉장히 안 좋은 댓글이 될 수 있겠지만, 그래도 댓글을 답니다. 질문에 대한 답이라기보다는 액션방식 구현에 관한 내용에 대해 썼습니다.
huguduk님의 글을 제가 잘 이해했다면, MV의 기존 jrpg 턴 방식으로 구현되어있는 스크립트를 액션방식을 만들 때 활용하고자 하시는 것 같은데, 그것이 좋은 생각인지 모르겠습니다. 왜냐하면, 제 생각에 액션 방식과 jrpg의 턴 방식이 공유하고 있는 메카닉이 별로 없는 것 같기 때문입니다. 액션 방식의 메카닉으로는, 이동과 공격, 맞추거나 맞았는지 확인하는 것, 데미지와 죽음 처리, 적이나 주인공의 데이터 관리 정도가 있을겁니다. 여기서 물론 jrpg 턴 방식을 구현하기 위한 스크립트들(특히 적 데이터를 관리하는 부분이나 데미지를 입었을 때 보이는 효과같은 것)을 가져다가 어떻게 쓸 수 도 있겠지만, 액션방식을 처음 만들 때는 일단 별다른 효과 없이 주인공 캐릭터로 적들에게 다가가서 적이 죽을때까지 때려보는 시스템을 구현해 보는 것이 우선이라고 생각합니다.
그러한 시스템을 구현하고자 한다면, 일단 huguduk님이 어떤 인풋에 따라 공격하는 스프라이트가 나오는 것을 구현하셨다고 하니, 그 스프라이트의 좌표와 이미지 크기를 갖고 다른 적 이벤트들과 충돌테스트를 해볼 수 있을 것 같습니다. 그리고 충돌이 검출되면 적이 데미지를 입어야 할 텐데, 맵에 있는 이벤트에 적용할 수 있는(예를들어, 데미지를 입는 그래픽이 뜨는 것) 간단한 함수나 메소드같은것을 만들어서 호출하면 될 것 같습니다.
정리하자면, 액션 방식을 만들기 위해서, 일단 맵에 올라온 캐릭터들이나 이미지들 간의 충돌처리하는 부분과 간단하게 적 체력을 관리하는 부분을 만드는 것이 먼저이며, jrpg 방식의 스크립트에서 당장 가져다가 쓸만한 것은 없을 것 같다는 것이 제 생각입니다. 그러므로 지금 구현하셨다는 부분과, 맵에서 이벤트들의 위치를 알아내는 것 정도만 구현하여도, 일단은 간단한 액션방식을 구현할 준비가 된 것이라고 생각합니다. 그리고 이러한 과정에서, 액터, 배틀러, 캐릭터의 관계에 관한 이해는 별로 중요하지 않은 것 같습니다.
첫 문단에서 말씀드린 것처럼, 제가 MV와 MV의 스크립트에 대해서 잘 모르기 때문에 굉장히 어처구니없는 댓글이 될 수도 있겠지만, 그래도 다른 환경에서 간단한 슈팅게임 같은 것은 만들어 보았기 때문에 참고가 되지 않을까 해서 댓글을 남깁니다.
그리고 혹시 도움말을 아직 안보셨다면, 액터, 배틀러, 캐릭터에 관해서 한번 살펴보는 것 도 좋을 것 같습니다. 해당 도움말 내용이 있는지는 모르겠지만요.
괜히 당연한 내용을 장황하게 설명한건지도 모르겠습니다.