From f1714015dbeb61848fdc2beb3006f2ba65dc574f Mon Sep 17 00:00:00 2001 From: logaritmisk Date: Wed, 18 Nov 2015 14:01:14 +0100 Subject: [PATCH] Stuff. --- src/main.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/main.rs b/src/main.rs index d3374d4..54360b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,8 @@ use sdl2_image::LoadTexture; use sdl2::rect::Rect; use sdl2::keyboard::Keycode; use sdl2::pixels::Color; +use sdl2::render::Renderer; + use tile::Layer; use camera::Camera; @@ -41,6 +43,49 @@ const PLAYER_ACCELERATION_X_STOP : f32 = 0.15; const PLAYER_ACCELERATION_X_CHANGE : f32 = 0.06; +struct GameObject { + graphics: Box +} + +impl GameObject { + pub fn new(graphics: Box) -> GameObject { + GameObject { + graphics: graphics + } + } + + pub fn update(&self, renderer: &Renderer) { + self.graphics.update(self, renderer); + } +} + + +trait GraphicsComponent { + fn update(&self, &GameObject, &Renderer); +} + + +struct PlayerGraphicsComponent { + x: f32, + y: f32 +} + +impl PlayerGraphicsComponent { + pub fn new(x: f32, y: f32) -> PlayerGraphicsComponent { + PlayerGraphicsComponent { + x: x, + y: y + } + } +} + +impl GraphicsComponent for PlayerGraphicsComponent { + fn update(&self, object: &GameObject, renderer: &Renderer) { + println!("epic shit!"); + } +} + + #[derive(Clone)] enum Tile<'a> { Empty, @@ -60,6 +105,11 @@ fn main() { let window = video_subsystem.window("Super Matte Bros", SCREEN_WIDTH, SCREEN_HEIGHT).position_centered().build().unwrap(); let mut renderer = window.renderer().software().build().unwrap(); + + //let _player = GameObject::new(Box::new(PlayerGraphicsComponent::new(390.0, 390.0))); + //_player.update(&renderer); + + let world_sprites = renderer.load_texture(&Path::new("gfx/world.png")).unwrap(); let floor_sprite = StaticSprite::new(&world_sprites, 16 * 0, 16 * 0);