Skip to content
This repository has been archived by the owner on Jan 11, 2021. It is now read-only.

Latest commit

 

History

History
15 lines (7 loc) · 1.74 KB

map.md

File metadata and controls

15 lines (7 loc) · 1.74 KB

地图介绍

随机冒险地图

实现功能:在5×5的25宫格内选取中间位置为起始房间,随机向四个方向不断延伸,派生出总共7个房间,包括起点房间、怪物房间(普通怪物及boss)、商店房、宝箱房、雕像房(购买buff)、终点房(传送至下一关或者结束冒险)。
实现思路:利用Tiled工具,编辑一个tmx瓦片地图,包含5×5共25个独立房间,然后通过随机生成算法,加上相应限制(如初始房间只有一条通路),从初始房间出发向随机四个方向生成路径,并通过瓦片编辑函数TMXLayer::setTileGID(uint32_t gid, const Vec2& pos),将相应的坐标集合可视化为“走廊”,生成过程中,将指定房间标记为上述房间类型之一,在后面的函数中,通过添加子节点的方式,将商店(Shop类)、宝箱(Chest类)、雕像(Statue类)、传送门(portal精灵)加入地图中,并赋予其与玩家互动的功能。

小地图

实现功能:游戏进程中,在屏幕右上角生成一个游戏小地图,对玩家已探索的房间进行简化标记,其中玩家所在的房间为深灰色,玩家探索过的其他房间为浅灰色。
实现思路:利用Tiled工具,编辑一个9×9大小的tmx瓦片地图,设置变量lastRoomCoord,记录玩家所处的上一个房间的坐标。在玩家移动的过程中,获取玩家的坐标,通过坐标变换函数AdventureMapLayer::tileCoordFromPosition(Vec2 position)以及AdventureMapLayer::roomCoordFromPosition(Vec2 position),得出玩家所在房间的瓦片坐标,标记为深灰色,并通过过道瓦片连接玩家所在的房间和上一个房间,更新lastRoomCoord。