Changed hitboxed from an 'is a hitbox' to a 'has a hitbox'
[bug-basher.git] / src / entities / bug.rs
1 use geometry::*;
2 use hitbox::*;
3
4 #[derive(Debug, Clone)]
5 pub struct Bug {
6     pub pos: Vec2d,
7     pub rotation: f64,
8     pub velocity: Vec2d,
9     pub alive: bool
10 }
11
12 const SPEED: f64 = 175.;
13
14 impl Bug {
15     pub fn new(x: f64, y: f64) -> Bug {
16         let pos = Vec2d::new(x, y);
17         let pos_unit = pos.unit();
18         Bug {
19             pos,
20             rotation: (-pos).angle(),
21             velocity: -pos_unit * SPEED,
22             alive: true
23         }
24     }
25
26     pub fn advance(&mut self, seconds: f64) {
27         self.pos = self.pos + self.velocity * seconds;
28     }
29
30     pub fn hitbox(&self) -> Hitbox {
31         Hitbox::Circle(CircleHitbox{
32           pos: self.pos, radius: 75.  
33         })
34     }
35 }