5个不稳定版本
0.3.0 | 2023年2月22日 |
---|---|
0.2.1 | 2023年1月31日 |
0.2.0 | 2022年8月27日 |
0.1.1 | 2022年3月18日 |
0.1.0 | 2022年3月18日 |
#799 in 算法
32 每月下载量
77KB
2K SLoC
Here Be Dragons
生成用于游戏的进程性地图。
致谢
这个crate基于mapgen.rs。感谢Krzysztof Langner为这个crate实现了许多地图生成算法所付出的辛勤工作。
地图过滤器
这个库包含不同的地图过滤器,可以组合起来创建自定义地图生成器。
实现的过滤器
- 区域出口点
- 区域起点
- BSP内部
- BSP房间
- 细胞自动机
- 裁剪不可达区域
- 扩散限制聚集(DLA)
- 醉汉行走
- 迷宫
- 噪声生成器
- 预制
- 最近的房间走廊
- 简单房间
- 沃罗诺伊蜂巢
- 波函数坍缩
使用方法
将依赖项添加到您的项目中
here_be_dragons = "0.1"
使用单个地图生成器
use rand::prelude::*;
use here_be_dragons::{Map, MapFilter};
use here_be_dragons::filter::CellularAutomata;
let mut rng = StdRng::seed_from_u64(100);
let gen = CellularAutomata::new();
let map = gen.modify_map(&mut rng, &Map::new(80, 50));
使用MapBuilder来链式调用地图生成器和修饰符
use here_be_dragons::{
MapBuilder,
filter::{
NoiseGenerator,
CellularAutomata,
AreaStartingPosition,
XStart,
YStart,
},
};
let map = MapBuilder::new(80, 50)
.with(NoiseGenerator::uniform())
.with(CellularAutomata::new())
.with(AreaStartingPosition::new(XStart::CENTER, YStart::CENTER))
.with(CullUnreachable::new())
.with(DistantExit::new())
.build();
更多信息请查看文档。
这个库基于Roguelike教程中的代码。我强烈推荐它来学习如何在Rust中编写Roguelike。
许可证
许可协议为以下之一
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证的定义,将根据上述方式双许可,不附加任何额外条款或条件。
依赖项
~240–485KB