X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcore%2Flevel%2Fmod.rs;h=00f30090a033831768295652220507b9dc3ca856;hb=4074267844733949556af129550dfc42fc81da76;hp=84d4fad428720330d7d2a7f9e31282ee55e933c3;hpb=b5332019b30abd70698c9cdd7b7b9d42502681c2;p=kaka%2Frust-sdl-test.git diff --git a/src/core/level/mod.rs b/src/core/level/mod.rs index 84d4fad..00f3009 100644 --- a/src/core/level/mod.rs +++ b/src/core/level/mod.rs @@ -1,4 +1,4 @@ -use common::{Point, Dimension, Intersection, supercover_line}; +use common::{Point, Dimension, Intersection, Angle, ToAngle, supercover_line}; use core::render::Renderer; use sprites::SpriteManager; use std::rc::Rc; @@ -89,6 +89,14 @@ impl Level { // walls for wall in &self.walls { for e in &wall.edges { + let c = (e.p1 + e.p2) / 2.0; + let a = (e.p2 - e.p1).to_angle() + std::f64::consts::FRAC_PI_2.radians(); + + renderer.draw_line( + <(i32, i32)>::from(c.to_i32()), + <(i32, i32)>::from((c + Point::from(a) * 10.0).to_i32()), + (255, 128, 0)); + renderer.draw_line( <(i32, i32)>::from(e.p1.to_i32()), <(i32, i32)>::from(e.p2.to_i32()), @@ -238,4 +246,8 @@ impl<'a> Wall<'a> { edge, } } + + pub fn normal(&self) -> Angle { + (self.edge.p2 - self.edge.p1).to_angle() + std::f64::consts::FRAC_PI_2.radians() + } }