From 7c83fe7eeaac3736d5a59b270bbbbde59780e536 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 16 Jul 2024 16:21:37 +0200 Subject: item rendering and movement --- light-client/src/main.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'light-client/src/main.rs') diff --git a/light-client/src/main.rs b/light-client/src/main.rs index 8be38e4c..b00ba734 100644 --- a/light-client/src/main.rs +++ b/light-client/src/main.rs @@ -17,8 +17,13 @@ */ use game::Game; use network::Network; -use sdl2::{event::Event, keyboard::Keycode, pixels::Color}; +use sdl2::{ + event::Event, + keyboard::{KeyboardState, Keycode}, + pixels::Color, +}; use sprite_renderer::SpriteRenderer; +use std::time::{Duration, Instant}; pub mod game; pub mod network; @@ -55,6 +60,10 @@ fn main() { character: 0, }); + let mut events = sdl_context.event_pump().unwrap(); + + let mut last_tick = Instant::now(); + 'mainloop: loop { net.poll(); @@ -62,6 +71,11 @@ fn main() { game.packet_in(packet, &mut renderer); } + let keyboard = KeyboardState::new(&events); + let dt = last_tick.elapsed().min(Duration::from_secs_f32(1. / 30.)); + game.tick(dt.as_secs_f32(), &keyboard, &mut net.queue_out); + last_tick += dt; + game.draw(&mut renderer); canvas.set_draw_color(Color::BLACK); @@ -69,7 +83,7 @@ fn main() { renderer.submit(&mut canvas); canvas.present(); - for event in sdl_context.event_pump().unwrap().poll_iter() { + for event in events.poll_iter() { match event { Event::Quit { .. } | Event::KeyDown { -- cgit v1.2.3-70-g09d2