aboutsummaryrefslogtreecommitdiff
path: root/light-client/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'light-client/src/main.rs')
-rw-r--r--light-client/src/main.rs27
1 files changed, 23 insertions, 4 deletions
diff --git a/light-client/src/main.rs b/light-client/src/main.rs
index 5e79aa85..b00ba734 100644
--- a/light-client/src/main.rs
+++ b/light-client/src/main.rs
@@ -1,5 +1,3 @@
-use std::time::Instant;
-
/*
Hurry Curry! - a game about cooking
Copyright 2024 metamuffin
@@ -19,8 +17,13 @@ use std::time::Instant;
*/
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;
@@ -28,6 +31,8 @@ pub mod sprite_renderer;
pub mod tilemap;
fn main() {
+ env_logger::init_from_env("LOG");
+
let sdl_context = sdl2::init().unwrap();
let video_subsystem = sdl_context.video().unwrap();
let window = video_subsystem
@@ -50,6 +55,15 @@ fn main() {
let mut game = Game::new();
let mut renderer = SpriteRenderer::init(&texture_creator);
+ net.queue_out.push_back(hurrycurry_protocol::PacketS::Join {
+ name: "light".to_string(),
+ character: 0,
+ });
+
+ let mut events = sdl_context.event_pump().unwrap();
+
+ let mut last_tick = Instant::now();
+
'mainloop: loop {
net.poll();
@@ -57,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);
@@ -64,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 {