Adjust the boll collisions
authorTomas Wenström <tomas.wenstrom@gmail.com>
Sun, 24 Jan 2021 20:44:50 +0000 (21:44 +0100)
committerTomas Wenström <tomas.wenstrom@gmail.com>
Sun, 24 Jan 2021 20:44:50 +0000 (21:44 +0100)
src/core/game.rs

index 429a2ee..1e657cb 100644 (file)
@@ -1,5 +1,5 @@
 use AppState;
-use common::Point2D;
+use common::{Point2D, Radians};
 use core::controller::Controller;
 use core::controller::ControllerManager;
 use core::level::Level;
@@ -253,12 +253,14 @@ impl Object for Boll {
            if self.bounces == 0 {
                return Dead
            }
-           self.vel *= -0.5;
+           self.vel *= -0.25;
+           self.pos += self.vel;
            self.bounces -= 1;
            use rand::distributions::{Distribution, Normal};
-           let normal = Normal::new(0.5, 0.4);
+           let mut rng = rand::thread_rng();
+           let a = Radians(self.vel.to_radians().0 + Normal::new(0.0, 0.75).sample(&mut rng));
            objects.push(Box::new(Boll {
-               vel: self.vel * normal.sample(&mut rand::thread_rng()),
+               vel: Point2D::from(a) * Normal::new(1.0, 0.25).sample(&mut rng) * self.vel.length(),
                ..*self
            }));
        }