오늘은 어제 구현한 내용을 C#으로 바꿔서 실제로 게임에서 층을 생성하고, 방끼리 이동을 구현했으며, 하단에 미니맵까지 만들었다.
1) 앞으로 FloorManager는 층을 관리할 것이다. 방 생성을 담당하는 Floor 클래스는 Generate(층번호) 메소드를 실행하면 층 정보를 생성한다. FloorManager는 CreateAndMoveToFloor(층번호) 함수에서 해당 메소드를 불러서 층을 생성하고 유저를 시작 방에 보낸다.
2) MoveToRoom(int x, int y) 함수를 구현했는데, 얘는 (x, y)위치의 방으로 유저를 이동시킨다. 정확히는, 유저는 그대로 있고 화면에 나타나는 포탈, 몬스터 공격로 모양등을 바꾸는 것 뿐이다. 예를들면, 위 움짤에서는 빨간색 포탈이 하단에 뜨는데, Floor에 담겨있는 층 정보에서 현재 방 아래쪽 방이 전투방이라고 알려주고 있기 때문이다. 그래서 GetInput()에서 해당 포탈을 눌렀는지 확인하고 해당하는 방으로 이동시켜주고(현재 있는 방에서 상하좌우 대응하는 방으로), 전투방이었으니 몬스터 공격로를 생성하고 전투를 시작한다.
3) 미니맵은 그냥 각 방에 대응하는 UI이미지를 미리 쭉 넣어 놓고, 유저가 방을 움직일 때마다 해당 이미지를 드러내주는 식으로 했다. 이를 위해서 UIManager에 RevealMapAndMoveMarker()라는 함수를 구현해두었다. 유저가 MoveToRoom()으로 방 이동할 때마다 RevealMapAndMoveMarker()함수가 불려서 미니맵을 갱신해준다.
내일부터는 엘리트/보스몬스터들의 능력을 구현하려고 한다. 엘리트 몬스터들은 능력이 간단하지만 보스몬스터들은 복잡하다. 그러니 내일 엘리트 몬스터들을 빠르게 모두 구현하고 보스 구현에 좀 더 집중해야겠다.
- 몬스터 type 3~9번 구현하기.
'게임 개발 > Tower of Rings' 카테고리의 다른 글
7/19 - 보스 몬스터(타입 10~13번) 능력 구현 (0) | 2022.07.19 |
---|---|
7/15 - 엘리트 몬스터(타입 3~9번) 능력 구현 (0) | 2022.07.15 |
7/13 - 랜덤 층 생성 알고리즘 (0) | 2022.07.13 |
7/12 - 링 ID 17, 30, 31번, 몬스터 웨이브, 전투 보상, 게임 오버 (0) | 2022.07.13 |
7/8 - 링 ID 28, 29, 32번 (0) | 2022.07.09 |