Add naive random walk for star candy
This commit is contained in:
parent
c649baf6ab
commit
69b8c5ee0c
1 changed files with 45 additions and 2 deletions
|
@ -15,6 +15,7 @@ pub struct Star {
|
||||||
pub y: f64,
|
pub y: f64,
|
||||||
w: f64,
|
w: f64,
|
||||||
h: f64,
|
h: f64,
|
||||||
|
dir: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Star {
|
impl Star {
|
||||||
|
@ -38,6 +39,7 @@ impl Star {
|
||||||
w: bounds[2],
|
w: bounds[2],
|
||||||
h: bounds[3],
|
h: bounds[3],
|
||||||
sprite_id: sprite_id,
|
sprite_id: sprite_id,
|
||||||
|
dir: rand_dir(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +57,49 @@ impl Star {
|
||||||
sprite.set_position(self.x, self.y);
|
sprite.set_position(self.x, self.y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let mov_x = rand::random::<f64>() * 0.5;
|
self.dir = rand_turn(self.dir);
|
||||||
let mov_y = rand::random::<f64>() * 0.5;
|
let dir = lookup_dir(self.dir);
|
||||||
|
let mov_x = 2.0 * dir.0;
|
||||||
|
let mov_y = 2.0 * dir.1;
|
||||||
scene.run(self.sprite_id, &Action(Ease(EaseFunction::CubicOut, Box::new(MoveBy(dt * 0.75, mov_x, mov_y)))));
|
scene.run(self.sprite_id, &Action(Ease(EaseFunction::CubicOut, Box::new(MoveBy(dt * 0.75, mov_x, mov_y)))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn rand_dir() -> u32 {
|
||||||
|
rand::random::<u32>() % 8
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rand_turn(dir: u32) -> u32 {
|
||||||
|
let coin = rand::random::<i32>() % 10;
|
||||||
|
match coin {
|
||||||
|
-9 => {
|
||||||
|
if dir == 0 {
|
||||||
|
7
|
||||||
|
} else {
|
||||||
|
dir - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
9 => {
|
||||||
|
if dir == 7 {
|
||||||
|
0
|
||||||
|
} else {
|
||||||
|
dir + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => dir,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn lookup_dir(dir: u32) -> (f64, f64) {
|
||||||
|
match dir {
|
||||||
|
0 => (0.0, -1.0),
|
||||||
|
1 => (1.0, -1.0),
|
||||||
|
2 => (1.0, 0.0),
|
||||||
|
3 => (1.0, 1.0),
|
||||||
|
4 => (0.0, 1.0),
|
||||||
|
5 => (-1.0, 1.0),
|
||||||
|
6 => (-1.0, 0.0),
|
||||||
|
7 => (-1.0, -1.0),
|
||||||
|
_ => (0.0, 0.0),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue