From 30df4064646fb429568474c0cdb2ee2ee08fd22e Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Fri, 2 Mar 2018 20:35:40 +0200 Subject: Clickable bugs! --- src/entities/bug.rs | 34 ++++++++++++++++++++++++++++++++++ src/entities/mod.rs | 1 + 2 files changed, 35 insertions(+) create mode 100644 src/entities/bug.rs create mode 100644 src/entities/mod.rs (limited to 'src/entities') diff --git a/src/entities/bug.rs b/src/entities/bug.rs new file mode 100644 index 0000000..6b39e8a --- /dev/null +++ b/src/entities/bug.rs @@ -0,0 +1,34 @@ +use geometry::*; + +pub struct Bug { + pub pos: Vec2d, + pub rotation: f64, + pub alive: bool +} + +impl Bug { + pub fn new(x: f64, y: f64, facing: f64) -> Bug { + Bug { + pos: Vec2d { + x: x, + y: y + }, + rotation: facing, + alive: true + } + } + + pub fn advance(&mut self, seconds: f64) { + //TODO, add some motion + } + + pub fn click(&mut self, point: Vec2d) { + if self.touches(point) { + self.alive = false; + } + } + + fn touches(&self, point: Vec2d) -> bool { + self.pos.distance(point) <= 45. // Some better hit box modelling might be nice? + } +} diff --git a/src/entities/mod.rs b/src/entities/mod.rs new file mode 100644 index 0000000..0f4281c --- /dev/null +++ b/src/entities/mod.rs @@ -0,0 +1 @@ +pub mod bug; -- cgit v1.2.3