#rogue-like #console #fov #field-of-view

dyoren-fov

一个包含用于roguelike的2D视野算法的纯Rust库。

1个不稳定版本

0.1.1 2019年6月15日
0.1.0 2019年6月15日

#1313游戏开发

Download history 22/week @ 2024-03-11 17/week @ 2024-03-18 24/week @ 2024-03-25 74/week @ 2024-04-01 13/week @ 2024-04-08 14/week @ 2024-04-15 18/week @ 2024-04-22 14/week @ 2024-04-29 13/week @ 2024-05-06 16/week @ 2024-05-13 23/week @ 2024-05-20 16/week @ 2024-05-27 17/week @ 2024-06-03 12/week @ 2024-06-10 16/week @ 2024-06-17 18/week @ 2024-06-24

66 每月下载量
2 个库中 使用

MIT 许可协议

19KB
409

dyoren-fov

Build Status Documentation

一个包含用于roguelike的2D视野算法的纯Rust库。

编译说明

本地编译

cargo run --example fov

WebAssembly编译

rustup target install wasm32-unknown-unknown
cargo install cargo-web
cargo web start --example fov

用法

Cargo.toml

[dependency]
doryen-fov="*"

main.rs

use doryen_fov::{FovAlgorithm, FovRecursiveShadowCasting, MapData};

fn main() {
    let mut fov = FovRecursiveShadowCasting::new();
    let map_width = 10;
    let map_height = 10;
    let mut map = MapData::new(map_width, map_height); // build an empty map
    map.set_transparent(5, 5, false); // put some wall
    let radius = 0;
    let player_x = 5;
    let player_y = 6;
    map.clear_fov(); // compute_fov does not clear the existing fov
    fov.compute_fov(&mut map, player_x, player_y, radius, false);
    assert!(map.is_in_fov(5, 7));
}

贡献

您可以通过pull requests来为此库做出贡献。如果您这样做,请更新CHANGELOG.md和CREDITS.md文件。如果您提供了一个新功能,请考虑添加一个示例作为教程/展示。

无运行时依赖