summaryrefslogtreecommitdiff
path: root/src/entities/home.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/entities/home.rs')
-rw-r--r--src/entities/home.rs29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/entities/home.rs b/src/entities/home.rs
index 6f7f53d..2839f5d 100644
--- a/src/entities/home.rs
+++ b/src/entities/home.rs
@@ -1,9 +1,12 @@
use geometry::*;
use hitbox::*;
+use asset_id::*;
-#[derive(Debug, Clone)]
+#[derive(Clone)]
pub struct Home {
- pub pos: Vec2d
+ pub pos: Vec2d,
+ pub animation_time: f64,
+ pub sprite: SpriteId
}
impl Home {
@@ -12,9 +15,29 @@ impl Home {
pos: Vec2d {
x: x,
y: y
- }
+ },
+ animation_time: 0.,
+ sprite: SpriteId::Sleepypug1
}
}
+
+ pub fn advance(&mut self, seconds: f64) {
+ let scale = 0.5;
+ self.animation_time = (self.animation_time + scale * seconds).fract();
+ self.sprite = if self.animation_time < 0.3 {
+ SpriteId::Sleepypug1
+ } else if self.animation_time < 0.4 {
+ SpriteId::Sleepypug2
+ } else if self.animation_time < 0.5 {
+ SpriteId::Sleepypug3
+ } else if self.animation_time < 0.8 {
+ SpriteId::Sleepypug4
+ } else if self.animation_time < 0.9 {
+ SpriteId::Sleepypug3
+ } else {
+ SpriteId::Sleepypug2
+ } ;
+ }
}
impl CircleHitbox for Home {