-
2개월차 준포폴 개인Study/Portfolio 2016. 4. 21. 03:15- 짱구는 못말려 (RPG)
- 기간 : 1주일
- github : https://github.com/LeeJiu/portfolio.git
- youtube : https://youtu.be/TRD5v9ak9Lw
- 주요 기능 구현 : y축 정렬 렌더링
- y축 정렬 렌더링
1. 맵에 배치되는 객체들(플레이어, 적)은 오브젝트를 상속받는다.
2. 오브젝트를 관리할 오브젝트 매니저를 만든다.
3. 오브젝트 매니저는 생성된 오브젝트를 벡터에 담아 관리한다.
4. 벡터에 담긴 오브젝트는 y축으로 정렬한다.
4-1. sort(v.begin(), v.end(), compare) // compare에서 y축을 비교
5. 정렬된 벡터를 순서대로 렌더링한다.
- 시스템 설계 구조
- 설계에서 좀더 생각해볼 점은 맵도 하나의 오브젝트로 만들고, 스테이지 객체를 만들어 스테이지에 오브젝트를 생성, 배치하는 것은 어떠한가이다.
맵에서 지형, 지물들을 배치하게 된다면 플레이어가 뒤에 그려져야하는 경우, 위와 같은 구조에서는 오브젝트 매니저에서 게임 맵을 관리해주지 않기 때문에 렌더링 순서가 맞지 않는다. 이에 대한 해결 방법으로는 게임 오브젝트를 상속 받는 장애물 객체를 만드는 방법이 있다. 그러면 오브젝트 매니저가 장애물을 다른 오브젝트들과 함께 관리할 수 있기 때문에 y축 정렬 렌더링이 가능해진다.
물론, 현재 게임에서는 맵에 지형, 지물이 없기 때문에 크게 문제될 것은 없다고 생각한다.
- 후기
아쉽다. 제작 순서를 잘 생각했어야 했다. 가장 주요 기능인 y축 정렬 렌더를 3일차에 넣으려고 보니 설계에 문제가 있었다. 가장 먼저 구현했다면 설계 수정에 들인 시간을 다른 기능을 추가 구현하는데 사용할 수 있지 않았을까 하는 생각이 든다.
y축 정렬이 생각보다 간단한 것인데 지레 겁먹었다. 그냥 상속이 아직 익숙하지 않았을 뿐이었다. 그리고 벡터의 정렬 알고리즘 정말 편하다. 좋다.
다음 프젝 때는 설계에 좀 더 시간을 투자할 필요가 있다고 생각한다. 그리고 역시 모작을 해야겠다. 어떤 기능을 넣어야 할지 고민하는 시간이 아깝다. 더 많은 기능들을 구현해보고 싶다.
댓글