use macroquad::prelude::*; #[macroquad::main("cool game")] async fn main() { let mut game = Game::new(); loop { if is_key_down(KeyCode::Escape) { break; } game.draw(); game.update(); next_frame().await; } } struct Game { player: Rect, } impl Game { fn new() -> Self { Self { player: Rect::new(50.0, 50.0, 25.0, 25.0), } } fn update(&mut self) { if is_key_down(KeyCode::Up) { self.player.y -= 1.0; } if is_key_down(KeyCode::Down) { self.player.y += 1.0; } if is_key_down(KeyCode::Right) { self.player.x += 1.0; } if is_key_down(KeyCode::Left) { self.player.x -= 1.0; } } fn draw(&self) { clear_background(DARKBLUE); draw_rectangle( self.player.x, self.player.y, self.player.w, self.player.h, PINK, ); } }