diff --git a/game/game_logic/src/scenes/main_menu.rs b/game/game_logic/src/scenes/main_menu.rs index 3c166571..3ff370e9 100644 --- a/game/game_logic/src/scenes/main_menu.rs +++ b/game/game_logic/src/scenes/main_menu.rs @@ -29,6 +29,7 @@ pub enum MenuStateSignal { pub struct MainMenu { pub has_updated_discord_rpc: bool, volume_percentage: f32, + show_debug_info: bool, } impl MainMenu { @@ -42,6 +43,7 @@ impl MainMenu { Self { has_updated_discord_rpc: false, volume_percentage: game_settings.volume.unwrap_or(0.5), + show_debug_info: false, } } @@ -78,9 +80,21 @@ impl MainMenu { let mouse_x = draw.get_mouse_x(); let mouse_y = draw.get_mouse_y(); - //TODO Errase later - draw.draw_text(&mouse_x.to_string(), 20, 5, 20, Color::BLACK); - draw.draw_text(&mouse_y.to_string(), 70, 5, 20, Color::BLACK); + // Optionally display debug info + if draw.is_key_pressed(KeyboardKey::KEY_F3) { + self.show_debug_info = !self.show_debug_info; + } + if self.show_debug_info { + // Draw FPS and mouse location + draw.draw_fps(10, 10); + draw.draw_text( + format!("Mouse position: ({}, {})", mouse_x, mouse_y).as_str(), + 10, + 30, + 20, + Color::GREEN, + ); + } //Screen Size let window_height = draw.get_screen_height(); diff --git a/game/game_logic/src/scenes/pause_menu.rs b/game/game_logic/src/scenes/pause_menu.rs index 28e386ed..e7fc0d3e 100644 --- a/game/game_logic/src/scenes/pause_menu.rs +++ b/game/game_logic/src/scenes/pause_menu.rs @@ -17,7 +17,9 @@ use crate::{ use super::main_menu::MenuStateSignal; #[derive(Debug)] -pub struct PauseMenu {} +pub struct PauseMenu { + show_debug_info: bool, +} impl PauseMenu { /// Construct a new `PauseMenu` @@ -27,7 +29,9 @@ impl PauseMenu { constants: &ProjectConstants, game_settings: &mut PersistentGameSettings, ) -> Self { - Self {} + Self { + show_debug_info: false, + } } pub async fn render_pause_menu_frame( @@ -45,6 +49,26 @@ impl PauseMenu { // Clear the screen draw.clear_background(Color::WHITE); + //Obtain mouse position + let mouse_x = draw.get_mouse_x(); + let mouse_y = draw.get_mouse_y(); + + // Optionally display debug info + if draw.is_key_pressed(KeyboardKey::KEY_F3) { + self.show_debug_info = !self.show_debug_info; + } + if self.show_debug_info { + // Draw FPS and mouse location + draw.draw_fps(10, 10); + draw.draw_text( + format!("Mouse position: ({}, {})", mouse_x, mouse_y).as_str(), + 10, + 30, + 20, + Color::GREEN, + ); + } + // Title draw.draw_text("Paused", 100, 90, 60, Color::BLACK); diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index 2527b167..2ccdf3ed 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -24,6 +24,7 @@ pub struct PlayableScene { last_update: SystemTime, game_soundtrack: Music, world_colliders: Vec, + show_debug_info: bool, } impl PlayableScene { @@ -62,6 +63,7 @@ impl PlayableScene { last_update: SystemTime::UNIX_EPOCH, game_soundtrack, world_colliders, + show_debug_info: false, } } @@ -123,7 +125,7 @@ impl PlayableScene { // Render the map self.world_map - .render_map(&mut ctx2d, &self.camera, true, self.player.position); + .render_map(&mut ctx2d, &self.camera, self.show_debug_info, self.player.position); let player_size = (constants.tile_size as f32 * constants.player.start_size * self.player.size) as i32; @@ -138,6 +140,26 @@ impl PlayableScene { } pub fn draw_ui(&mut self, draw: &mut RaylibDrawHandle, constants: &ProjectConstants) { + // Obtain mouse position + let mouse_x = draw.get_mouse_x(); + let mouse_y = draw.get_mouse_y(); + + // Optionally display debug info + if draw.is_key_pressed(KeyboardKey::KEY_F3) { + self.show_debug_info = !self.show_debug_info; + } + if self.show_debug_info { + // Draw FPS and mouse location + draw.draw_fps(10, 10); + draw.draw_text( + format!("Mouse position: ({}, {})", mouse_x, mouse_y).as_str(), + 10, + 30, + 20, + Color::GREEN, + ); + } + draw.draw_rectangle(draw.get_screen_width() / 2 - 225, 0, 450, 40, Color::WHITE); draw.draw_text( "Unregistered HyperCam 2",