diff --git a/src/game_object.rs b/src/game_object.rs index c100b9c..2b78e22 100644 --- a/src/game_object.rs +++ b/src/game_object.rs @@ -8,9 +8,9 @@ pub struct GameObject<'a> { pub y: f32, pub w: u32, pub h: u32, - pub dx: f32, - pub dy: f32, - pub gravity: f32, + pub dx: f32, // TODO moved to PlayerPhysicsComponent + pub dy: f32, // TODO moved to PlayerPhysicsComponent + pub gravity: f32, // TODO moved to PlayerPhysicsComponent pub on_ground: bool, physics: Box, graphics: Box diff --git a/src/keyboard.rs b/src/keyboard.rs index ffc33a8..25dd8b7 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -6,7 +6,7 @@ use sdl2::keyboard::Keycode; pub struct KeyboardHandler { pressed_keys: HashMap, released_keys: HashMap, - held_keys: HashMap + held_keys: HashMap, } impl KeyboardHandler { @@ -14,7 +14,7 @@ impl KeyboardHandler { KeyboardHandler { pressed_keys: HashMap::new(), released_keys: HashMap::new(), - held_keys: HashMap::new() + held_keys: HashMap::new(), } } diff --git a/src/main.rs b/src/main.rs index 766f678..9867892 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,7 +67,7 @@ fn main() { let timer = Timer::new(); - let mut player = GameObject::new(390.0, 390.0, Box::new(PlayerPhysicsComponent), Box::new(PlayerGraphicsComponent::new(&player_sprites))); + let mut player = GameObject::new(390.0, 390.0, Box::new(PlayerPhysicsComponent::new()), Box::new(PlayerGraphicsComponent::new(&player_sprites))); let mut keyboard = KeyboardHandler::new(); diff --git a/src/player_components.rs b/src/player_components.rs index aa23422..aeb28f3 100644 --- a/src/player_components.rs +++ b/src/player_components.rs @@ -7,7 +7,21 @@ use sprite::{Sprite, StaticSprite, AnimatedSprite}; use game_object::GameObject; use component::{Updatable, Renderable}; -pub struct PlayerPhysicsComponent; +pub struct PlayerPhysicsComponent { + pub dx: f32, + pub dy: f32, + pub gravity: f32, +} + +impl PlayerPhysicsComponent { + pub fn new() -> PlayerPhysicsComponent { + PlayerPhysicsComponent { + dx: 0.0, + dy: 0.0, + gravity: 0.3, + } + } +} impl Updatable for PlayerPhysicsComponent { fn update(&self, _: &GameObject) {