X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcore%2Flevel%2Fmod.rs;fp=src%2Fcore%2Flevel%2Fmod.rs;h=cccd2538a4a1a69eafd3ddeed08ea2b3ed00ba60;hb=8065e2645a936275c7d69c6068d80ece598d6e57;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..cccd253 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, Radians, supercover_line}; use core::render::Renderer; use sprites::SpriteManager; use std::rc::Rc; @@ -89,6 +89,15 @@ impl Level { // walls for wall in &self.walls { for e in &wall.edges { + let c = (e.p1 + e.p2) / 2.0; + let mut rad = (e.p2 - e.p1).to_radians(); + rad.0 += std::f64::consts::FRAC_PI_2; + + renderer.draw_line( + <(i32, i32)>::from(c.to_i32()), + <(i32, i32)>::from((c + Point::from(rad) * 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 +247,10 @@ impl<'a> Wall<'a> { edge, } } + + pub fn normal(&self) -> Radians { + let mut rad = (self.edge.p2 - self.edge.p1).to_radians(); + rad.0 += std::f64::consts::FRAC_PI_2; + rad + } }