diff options
Diffstat (limited to 'src/npc.rs')
-rw-r--r-- | src/npc.rs | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1,5 +1,7 @@ use ggez::graphics::spritebatch::SpriteBatch; use ggez::nalgebra::Point2; +use rand::Rng; +use std::f32::consts::PI; use crate::animations::Animations; use crate::entity::{Entity, Operable}; @@ -83,3 +85,9 @@ enum Behavior { //Waiting(Instant), Wandering(Option<Point2<f32>>), } + +pub fn random_nearby_point(origin: Point2<f32>, within_radius: f32) -> Point2<f32> { + let w = within_radius * rand::thread_rng().gen_range(0.0, 1.0); + let t = 2.0 * PI * rand::thread_rng().gen_range(0.0, 1.0); + Point2::new(origin.x + w * t.cos(), origin.y + w * t.sin()) +} |