6个版本
新 0.1.5 | 2024年8月12日 |
---|---|
0.1.4 | 2024年8月8日 |
0.1.2 | 2024年7月4日 |
#273 in 游戏开发
361 每月下载量
75KB
1.5K SLoC
Tatami —
Tatami是一个rogue-like地下城生成算法,它通过一系列随机方向的、相互连接的矩形来创建多层的地下城布局。
该库试图提供rogue-like游戏中常见的许多功能,如楼梯、传送门、物品、敌人和陷阱。它旨在作为构建完整游戏的基础。
您可以在这里找到如何使用它的教程。
示例
输出生成的地下城图像
let dungeon = Dungeon::generate();
dungeon.output_as_image("dungeon.png", "images/spritesheet.png", 8);
dungeon.output_floor_as_image(0, "floor-1.png", "images/spritesheet.png", 8);
示例输出
为您的游戏生成地下城
let dungeon = Dungeon::generate();
for floor in &dungeon.floors {
for (x, col) in floor.tiles.iter().enumerate() {
for (y, tile) in col.iter().enumerate() {
match tile {
Tile::Floor => // Draw floor tile at (x, y)
Tile::Wall => // Draw wall tile at (x, y)
}
}
}
for room in &floor.rooms {
for item in &room.items {
match item.rarity {
1..=20 => // Spawn common item
21..=40 => // Spawn uncommon item
41..=60 => // Spawn rare item
61..=80 => // Spawn epic item
81..=100 => // Spawn legendary item
_ => unreachable!(),
}
}
for enemy in &room.enemies {
match enemy.difficulty {
1..=20 => // Spawn common enemy
21..=40 => // Spawn uncommon enemy
41..=60 => // Spawn rare enemy
61..=80 => // Spawn epic enemy
81..=100 => // Spawn legendary enemy
_ => unreachable!(),
}
}
for trap in &room.traps {
match trap.difficulty {
1..=20 => // Spawn common trap
21..=40 => // Spawn uncommon trap
41..=60 => // Spawn rare trap
61..=80 => // Spawn epic trap
81..=100 => // Spawn legendary trap
_ => unreachable!(),
}
}
}
}
依赖项
~5.5MB
~108K SLoC