12个版本
0.6.0 | 2022年12月19日 |
---|---|
0.5.2 | 2021年8月26日 |
0.5.0 | 2021年6月28日 |
0.4.2 | 2021年1月14日 |
0.4.1 | 2020年11月3日 |
398 在 游戏开发 中排名
每月下载 48 次
305KB
1.5K SLoC
游戏地图生成器
为游戏生成程序化地图。使用 WebAssembly 在浏览器中尝试 它。
地图过滤器
此库包含不同的地图过滤器,可以组合以创建自定义地图生成器。
实现的过滤器
- 区域出口点
- 区域起点
- BSP内部
- BSP房间
- 细胞自动机
- 删除不可达区域
- 扩散限制聚集(DLA)
- 醉汉行走
- 迷宫
- 噪声生成器
- 预制件
- 最近的房间走廊
- 简单房间
- 沃罗诺伊蜂巢
- 波函数坍缩
用法
将依赖项添加到您的项目中
mapgen = "0.4"
使用单个地图生成器
use rand::prelude::*;
use mapgen::{Map, MapFilter};
use mapgen::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 mapgen::{
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许可证定义,您有意提交以包含在作品中的任何贡献都应作为上述双重许可,不附加任何额外条款或条件。