Update SDL2 and SDL2 Image.

This commit is contained in:
2016-06-08 00:33:27 +02:00
parent 9926aa177c
commit 19a1f4b8f9
4 changed files with 102 additions and 62 deletions

View File

@@ -53,7 +53,7 @@ fn main() {
let sdl_context = sdl2::init().unwrap();
let video_subsystem = sdl_context.video().unwrap();
let _image_context = sdl2_image::init(sdl2_image::INIT_PNG).unwrap();
let _ = sdl2_image::init(sdl2_image::INIT_PNG).unwrap();
let window = video_subsystem.window("Super Matte Bros", SCREEN_WIDTH, SCREEN_HEIGHT).position_centered().build().unwrap();
let mut renderer = window.renderer().software().build().unwrap();
@@ -85,7 +85,6 @@ fn main() {
layer.set_tile(3, 17, Tile::Background(Rect::new(16 * 8, 16 * 9, 16, 16)));
layer.set_tile(4, 17, Tile::Background(Rect::new(16 * 10, 16 * 8, 16, 16)));
layer.set_tile(11, 17, Tile::Background(Rect::new(16 * 11, 16 * 9, 16, 16)));
layer.set_tile(12, 17, Tile::Background(Rect::new(16 * 12, 16 * 9, 16, 16)));
layer.set_tile(13, 17, Tile::Background(Rect::new(16 * 12, 16 * 9, 16, 16)));
@@ -164,9 +163,7 @@ fn main() {
let mut camera = Camera::new(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, layer.to_rect());
let previous = timer.current_time();
let mut previous : f64 = 0.0;
let mut previous = timer.current_time();
let mut lag = 0.0;
let mut event_pump = sdl_context.event_pump().unwrap();

View File

@@ -17,7 +17,8 @@ impl Updatable for PlayerPhysicsComponent {
pub struct PlayerGraphicsComponent<'a> {
flip_horizontal: Cell<bool>,
sprite_standing: RefCell<StaticSprite<'a>>,
sprite_running: RefCell<AnimatedSprite<'a>>
sprite_running: RefCell<AnimatedSprite<'a>>,
sprite_jumping: RefCell<StaticSprite<'a>>
}
impl<'a> PlayerGraphicsComponent<'a> {
@@ -25,14 +26,21 @@ impl<'a> PlayerGraphicsComponent<'a> {
PlayerGraphicsComponent {
flip_horizontal: Cell::new(false),
sprite_standing: RefCell::new(StaticSprite::new(&texture, 80, 32)),
sprite_running: RefCell::new(AnimatedSprite::new(&texture, 96, 32, 3, 10.0))
sprite_running: RefCell::new(AnimatedSprite::new(&texture, 96, 32, 3, 10.0)),
sprite_jumping: RefCell::new(StaticSprite::new(&texture, 160, 32))
}
}
}
impl<'a> Renderable for PlayerGraphicsComponent<'a> {
fn render(&self, object: &GameObject, elapsed: f64, renderer: &mut Renderer, destination: &Rect) {
if object.dx == 0.0 {
if !object.on_ground {
let mut sprite = self.sprite_jumping.borrow_mut();
sprite.flip_horizontal = self.flip_horizontal.get();
sprite.render(elapsed, renderer, destination);
} else if object.dx == 0.0 {
let mut sprite = self.sprite_standing.borrow_mut();
sprite.flip_horizontal = self.flip_horizontal.get();