Draft 01/28/2024
Draft of the code from date described above.
This commit is contained in:
82
vash_caster/src/game_state.rs
Normal file
82
vash_caster/src/game_state.rs
Normal file
@@ -0,0 +1,82 @@
|
||||
use sdl2::pixels::Color;
|
||||
|
||||
use rand::prelude::*;
|
||||
|
||||
use crate::Point;
|
||||
|
||||
pub struct GameState {
|
||||
player: Point,
|
||||
pub p_dx: i16,
|
||||
pub p_dy: i16,
|
||||
pub p_rot: f32,
|
||||
pub p_color: Color,
|
||||
pub rng: ThreadRng,
|
||||
}
|
||||
|
||||
impl GameState {
|
||||
pub fn init() -> Self {
|
||||
let mut new_rng = rand::thread_rng();
|
||||
|
||||
Self {
|
||||
player: Point {
|
||||
x: new_rng.gen_range(0..800),
|
||||
y: new_rng.gen_range(0..600),
|
||||
},
|
||||
p_dx: new_rng.gen_range(1..=5),
|
||||
p_dy: new_rng.gen_range(1..=5),
|
||||
p_rot: 90.0,
|
||||
p_color: Color::RGB(
|
||||
new_rng.gen_range(0..=255),
|
||||
new_rng.gen_range(0..=255),
|
||||
new_rng.gen_range(0..=255),
|
||||
),
|
||||
rng: new_rng,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn update(&mut self) {
|
||||
self.player.x += self.p_dx;
|
||||
|
||||
if self.player.x < 0 {
|
||||
self.player.x = 0;
|
||||
self.p_color = Color::RGB(
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
);
|
||||
self.p_dx = self.rng.gen_range(1..=5);
|
||||
} else if self.player.x > 800 {
|
||||
self.player.x = 800;
|
||||
self.p_color = Color::RGB(
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
);
|
||||
self.p_dx = self.rng.gen_range(-5..=-1);
|
||||
}
|
||||
|
||||
self.player.y += self.p_dy;
|
||||
|
||||
if self.player.y < 0 {
|
||||
self.player.y = 0;
|
||||
self.p_color = Color::RGB(
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
);
|
||||
self.p_dy = self.rng.gen_range(1..=5);
|
||||
} else if self.player.y > 600 {
|
||||
self.player.y = 600;
|
||||
self.p_color = Color::RGB(
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
self.rng.gen_range(0..=255),
|
||||
);
|
||||
self.p_dy = self.rng.gen_range(-5..=-1);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn player(&self) -> &Point {
|
||||
&self.player
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user