30分钟简易复刻元气骑士地图生成系统

本文介绍了如何使用Unity3d创建一个类似《元气骑士》的随机矩形房间地图生成系统。通过调整房间大小、随机连接走廊,生成特殊房间,最终实现了一个动态的地图生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自Unity Connect博主 超级汽水
一个简易的房间类 Roguelike 游戏地图生成系统
如果你还不知道《元气骑士》是什么游戏,也许你可以去看看这个视频
https://space.bilibili.com/87721937

地图显示方式

  1. 随机大小的矩形房间。
  2. 随机的房间数量。
  3. 通过走廊连接每个房间。
  4. 每个图都有 俩个特殊房间:“出生房”、“传送房”。

地图生成思路梳理

  • 因为在原版游戏中房间并不是完全的正方形,所以我们在设计时要考虑到边长的问题。
  • 虽然游戏中的房间数量是随机的,但是也是有一个范围的。所以需要按照生成地图的最终面积来做一个约束。
  • 走廊连接算是游戏中的一个难点,因为走廊的长度是不确定的要在生成房间后根据房间的位置和大小来确定走廊的生成位置以及长度。
  • 在游戏中,每一个大关卡包含多个小关卡,每个小关卡中又包含了多张地图,每个地图中又有多个小房间。这样说可能有点不太好理解我画了张图来帮忙理解:
    在这里插入图片描述
    实现思路以及简化
    在之前已经发过俩篇文章介绍tilemap生成随机地图的方法,如果对tilemap不太了解可以先去看看:
    使用tilemap制作随机地图(1)
    使用tilemap制作随机地图(2)

整体的实现流程如下:

1 .根据用户定义创建一张足够大的地图 (这里的地图指每个小关所有房间所在的大地图)。
在这里插入图片描述

2 .假设大地图中所有位置布满大小相同的房间 (这里的房间边长一定要奇数,比较好操作),然后根据所需的房间总数来删掉多余的房间。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值