Dolda2000 GitWeb
/
kaka
/
rust-sdl-test.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
dbf33b0
)
Bolls bounce on walls
author
Tomas Wenström
<tomas.wenstrom@gmail.com>
Sun, 17 Jan 2021 17:58:49 +0000
(18:58 +0100)
committer
Tomas Wenström
<tomas.wenstrom@gmail.com>
Sun, 17 Jan 2021 17:58:49 +0000
(18:58 +0100)
src/core/game.rs
patch
|
blob
|
blame
|
history
diff --git
a/src/core/game.rs
b/src/core/game.rs
index
f938245
..
8474fab
100644
(file)
--- a/
src/core/game.rs
+++ b/
src/core/game.rs
@@
-238,7
+238,7
@@
pub struct Boll {
}
impl Object for Boll {
}
impl Object for Boll {
- fn update(&mut self,
_
objects: &mut Objects, lvl: &Level, _dt: Duration) -> ObjectState {
+ fn update(&mut self, objects: &mut Objects, lvl: &Level, _dt: Duration) -> ObjectState {
self.vel += lvl.gravity;
self.pos += self.vel;
self.vel += lvl.gravity;
self.pos += self.vel;
@@
-252,6
+252,18
@@
impl Object for Boll {
}
}
}
}
+ if self.pos.x <= 0.0 || self.pos.x >= 1280.0 { // only for testing
+ self.pos.x = self.pos.x.max(0.0).min(1280.0);
+ self.vel.x = -self.vel.x;
+ self.bounces = 0;
+ use rand::distributions::{Distribution, Normal};
+ let normal = Normal::new(0.5, 0.4);
+ objects.push(Box::new(Boll {
+ vel: self.vel * normal.sample(&mut rand::thread_rng()),
+ ..*self
+ }));
+ }
+
Alive
}
Alive
}