Finish sprite rendering

This commit is contained in:
Yash Karandikar 2022-03-07 10:59:19 -06:00
parent 6e7a72d856
commit 056f470a82
Signed by untrusted user: karx
GPG Key ID: A794DA2529474BA5
3 changed files with 19 additions and 6 deletions

BIN
duck.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -80,7 +80,7 @@ impl Sprite {
let surf = ops.load()?;
let srect = surf.rect();
let dest_rect: Rect = Rect::new(x, y, srect.width(), srect.height());
let dest_rect: Rect = Rect::from_center((x, y), srect.width(), srect.height());
Ok(Self {
rect: dest_rect,
@ -88,8 +88,14 @@ impl Sprite {
})
}
pub fn draw(&self, canvas: Canvas<Window>) {
let surface = canvas.window();
pub fn draw(&self, canvas: &mut Canvas<Window>, events: &Events) -> Result<()> {
let mut surface = canvas.window().surface(events.as_ref())?;
self.surf.blit(None, &mut *surface, self.rect)?;
surface.finish()?;
Ok(())
}
}

View File

@ -1,13 +1,20 @@
use catbox::{Event, Game, Keycode};
use catbox::{Event, Game, Keycode, Sprite};
fn main() {
let game = Game::new("catbox demo", 1000, 800);
let mut i = 0;
let s = Sprite::new("/home/yashkarandikar/code/catbox/duck.png", 500, 400).unwrap();
game.run(|canvas, event_pump| {
i = (i + 1) % 255;
canvas.set_draw_color(catbox::Color::RGB(i, 64, 255));
canvas.clear();
// canvas.set_draw_color(catbox::Color::RGB(i, 64, 255));
// canvas.clear();
s.draw(canvas, event_pump).unwrap();
// let m = sdl2::mouse::MouseState::new(event_pump.as_ref());
// println!("{}, {}", m.x(), m.y());
for event in event_pump {
match event {
Event::Quit { .. }