随机生成Roguelike游戏地图算法

本文探讨了如何使用随机算法生成Roguelike游戏中的地图,包括数据结构如world、map、room和corridor,以及不同类型的迷宫地图。重点介绍了最简单的dungeon类型地图的生成逻辑,涉及房间生成、碰撞检测、门的设置以及通过A*算法连接房间。文章提供了一些C#代码片段作为实现示例。
摘要由CSDN通过智能技术生成

参考资料 http://www.roguebasin.com/index.php?title=Dungeon-Building_Algorithm http://www.roguebasin.com/index.php?title=Grid_Based_Dungeon_Generator

www.roguebasin.com 有很多相关的roguelike资料 相当有价值

首先随机生成一套地图世界有几个概念。 数据结构 1.world 2.map 3.room 4.corridor

地图的类型也有很多种 1.maze 2.dungeon 3.island 4.cave 5.castle

生成房间的算法也分为很多类别 我先实现了 最简单的一个地图类型 类似于dungeon的地图类型

生成的数据大概是这样

输入图片说明

算法逻辑 1.在world创建room 2.判断room是否碰撞 碰撞重新生成 3.房间生成门 4.查找最近的房间 使用astar 生成房间直接连通的街道。

一些c#代码

public void generatePCGBasic(byte[,] g) { base.generatePCG(g); // Init grid this.initRooms(); // Initialize rooms //this.initCorridors(); // Initialize corridors }

	public void initRooms()
	{
		this.rooms = new ArrayList();
		//room_num = 1;
		//  New room arraylist

		//Log.info("room_num",this.room_num);
		for (int n = 0; n < this.room_num; n++)
		{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值