주말동안 할 것도 없고.. 프로젝트 진행을 해야겠다 싶어서 하나씩 천천히 만들어보았다.
우선, 타이틀 화면이다.
게임스타트와 맵을 관리할 수 있는 맵툴을 만들었다. 맵툴을 만든 이유는 핵심적인 요소가 A* 알고리즘이고, 이를 보여주기 위해서는 맵툴이 반드시 필요할 것이라 생각하였다.
그리하여 만든 맵툴
아주 간단하다. 맵을 다음과 같이 만들고, 초록색은 플레이어, 빨간색은 보스이다. 길을 클릭하면 파란색으로 만들어 플레이어와 보스가 통과할 수 없도록 구현하였다. 참고로 아직 A* 알고리즘은 미구현하여 플레이어만 움직일 수 있는 상태이다. 대충 클릭해서 맵을 만들고 Save Map버튼을 누르면, 맵이 다음 파일처럼 저장된다.
1은 장애물, 0은 움직일 수 있는 길, 2,3은 플레이어와 보스 객체이다.
이후 다시 메인화면으로 돌아가 플레이를 하면
다음과 같이 맵툴에서 만든대로 나오게 된다.
아직 보스의 움직임(A*)이나, 플레이어의 공격은 구현되지 않았으나, 여태까지 한 것들의 동영상을 올려본다.
현재 플레이어가 움직이고 장애물을 통과하지 못하도록 만들었다.
2D 게임을 C++을 이용하여 구현해보는게 사실은 처음이다. 학부생 시절에는 오로지 C만 사용하였었다. 근데, C++을 사용하니 장점이 너무 확연하게 느껴진다. 특히 C언어를 사용했을 때는 main문 하나에 모든 부분을 때려넣었지만, C++을 사용하면서 클래스를 하나하나 세분하게 쪼개어 구현하는 것이 너무 편리했다. 그리고 무엇보다 재미있었다. 3천줄이 넘는 C언어 코드를 보다가 C++의 객체지향(클래스), 상속과 같은 것들이 생기면서 코드의 가독성이 매우 좋아진 듯 하다. 1달에서 2달 예상했지만, 다음주 또는 다다음주면 완성할 수 있을 것 같다. 마지막으로 구현했던 클래스들에 대해 올려본다.
'WinAPI' 카테고리의 다른 글
[WinAPI] 2D 게임 현황 <3주차> (0) | 2021.08.08 |
---|---|
[WinAPI] 2D 게임 현황 <2주차> (0) | 2021.08.01 |
[WinAPI] 개발계획 - 2D Game (0) | 2021.07.24 |
[WinAPI] 학기 텀프로젝트 (0) | 2019.11.01 |
[WinAPI] Inversus (0) | 2019.11.01 |