From 9d5b6af8d23866ee72d56596f5c43f3597645f15 Mon Sep 17 00:00:00 2001 From: Thomas Gideon Date: Tue, 8 Aug 2017 12:52:08 -0400 Subject: [PATCH] Change collider when growing or shrinking. --- src/mobs/hero.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/mobs/hero.rs b/src/mobs/hero.rs index 2c74e60..c5768a4 100644 --- a/src/mobs/hero.rs +++ b/src/mobs/hero.rs @@ -71,7 +71,13 @@ impl Hero { } pub fn grow(&mut self, scene: &mut Scene>, dt: f64) { - self.size += 1; + if let Some(sprite) = scene.child(self.sprite_id) { + self.size += 60; + let bounds = sprite.bounding_box(); + self.w = bounds[2]; + self.h = bounds[3]; + self.collider = Cuboid2::new(Vector2::new(bounds[2], bounds[3])); + } scene.run(self.sprite_id, &Action(Ease(EaseFunction::ElasticInOut, Box::new(ScaleBy(dt * 5.0, 0.3, 0.3))))); @@ -79,7 +85,13 @@ impl Hero { pub fn shrink(&mut self, scene: &mut Scene>, dt: f64) { if self.size > 0 { - self.size -= 1; + if let Some(sprite) = scene.child(self.sprite_id) { + self.size -= 1; + let bounds = sprite.bounding_box(); + self.w = bounds[2]; + self.h = bounds[3]; + self.collider = Cuboid2::new(Vector2::new(bounds[2], bounds[3])); + } scene.run(self.sprite_id, &Action(Ease(EaseFunction::ElasticInOut, Box::new(ScaleBy(dt * 5.0, -0.005, -0.005)))));