关于一些利用uinty实现元气骑士地图自动生成和元气骑士的地图有多大的热门话题,下面就让小编为大家一一讲解吧!
作者尤米尔
大家好,我是尤弥尔~
上次提到Unity提供了绘制tilemap脚本的API,今天就是汇报结果的日子!
这次,瓦片地图对象的设置是基于上一篇文章的。如果你想创建这种3D效果,你应该去看看我们之前的文章。这里我就不重复了。
1.平铺地图
在脚本中绘制瓦片地图,只需要调用SetTile方法即可,用法如下
TilemapSetTile坐标,tile;
这意味着如果你想自动生成地图,你只需要设置这些坐标点并让Unity将相应的图块放置在这些位置即可。
那么如何得到这些坐标点呢?我的方法是首先在二维数组中绘制地图,使用不同的数字代表不同的图块。
众所周知,《元气骑士》是一款roguelike,而roguelike的特点就是“随机性”。
以下是我让系统自动绘制随机地图的想法
首先,随机离开房间。
然后我们按房间方向随机分配房间。
最终效果是
2.创建房间布局
这个方法是通过查看元气骑士地图整理的,稍微有些不同,不过题不大。
您首先需要了解一些关键事项。
房间布局为55户型。
房间之间必须有一条路。
起点位于中心,终点位于末端。
为了展示我们的地图,我们在Excel中绘制了55个表格。每当你进入新地图时,中心的小房子就是你的起点。
接下来你需要打开房间。您可以在起点周围打开四个可选房间,其中一个是随机选择的第一个房间。
在新房间周围,您会看到另外3个选项,并且将从这3个选项中随机选择1-3个房间。
随机选择所选房间中的一个房间,重复上一步,重复两次,随机选择所选房间中的一个房间作为端点,房间布局就会随机~
实现代码如下
///可选房间统计信息publicvoidAddRangeintroomVector
///创建新房间方向///RoomNumber///RoomTypepublicvoidAddRoomintroomCount,RoomTyperoomType
ranRoom=ranRoomnextRooms[RandomRange0,ranRoomnextRoomsCount];
3.创建完整的地图
上面的房间布局存储为55个元素的2D数组,这需要足够大的2D数组来覆盖整个地图。这有多大?最大就是房间有多大,所以要预留一点。空间的计算方法是将走廊的大小乘以5,从而得到大地图一侧的长度。
虽然是随机房间,但房间的布局不能任意改变,可以在Excel中设计布局信息,然后转换为二维数组数据。如果您懒得自己在脚本中编写代码,则可以将其随机化。房间已经失去了它的风格。
现在你明白了原理,那么如何开始写作呢?这里我们需要使用前面提到的树结构,在创建房间布局时我们声明了类并创建了与每个房间对应的对象。这些物体还记得它们的子房间,形成一棵树。例如,上面的房间布局可以使用Deduction来生成这样的树。
这样做的好处是,在绘制房间之间的通道时,可以直接计算从父节点到子节点的路径,而在绘制房间时则不需要遍历通道。全房间图案二维数组,直接从“起点”开始,向下查找每个节点。
///在大地图上绘制房间///起始点privatevoidAddRoomForMapRoomroom
///在大地图上绘制路线///起点privatevoidAddPathForMapRoomRoom
foreachroomnextRooms中的房间项目
起点和终点的房间风格是固定的,其他房间随机分配“不同房间风格”。通过简单的数学计算,得到整个地图上房间的坐标,然后创建房间风格的二维数组。一旦分配到完整地图上的该位置,在房间之间绘制路径就会创建完整地图的二维数组。
最后遍历整个地图的二维数组,根据数组中的数据在tilemap上绘制图块,打造出最终的效果,然后换几组贴图,每次都会有耳目一新的感觉。
关联
提取码ow9w
~~分隔线~~~
欢迎加入快乐开发群610475807
单击此处了解更多有关对开发感兴趣的孩子的鞋子的信息。
要查看元气骑士的整个地图,您可以按中的特定键或按钮。具体按键可能会根据您的而有所不同,但通常您可以通过按“选择”、“地图”或“M”键来打开地图界面。
地图界面显示整个世界,包括已探索和未探索的区域。
您可以使用方向键或操纵杆移动光标,并使用Enter键或按钮查看地图详细信息。这将帮助你了解世界的结构和位置,让你更好地导航和导航。
一、元气骑士前传哪个地图有分裂?
在《元气骑士》的续作中,您可以在以下地图上获得具有分裂属性的武器
---守护神殿模式中的冰川顶部---。玩家可以完成这些关卡以获得具有分裂属性的武器。
---第三章“暗影之国”--。在本章中,玩家可以获得分裂属性的武器。
以上内容仅供参考,建议您以实际内容为准。
概率为5,普通难度击败纯粹试炼的boss红海妖,有5概率掉落图纸,获得图纸后即可在设计站完成制作。
希望这可以帮助。
No Comment