A pure rust library containing 2D field of view algorithms for roguelikes.
- install rust : https://www.rust-lang.org/learn/get-started
cargo run --example fov
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));
}
This code is released under the MIT license.
You can contribute to this library through pull requests. If you do so, please update the CHANGELOG.md and CREDITS.md files. If you provide a new feature, consider adding an example as a tutorial/showcase.