diff --git a/game/src/scenes/level_select_screen.rs b/game/src/scenes/level_select_screen.rs index f783f2f..b4dd9d9 100644 --- a/game/src/scenes/level_select_screen.rs +++ b/game/src/scenes/level_select_screen.rs @@ -26,6 +26,7 @@ pub struct LevelSelectScreen { is_btm_pressed: bool, selected_level: Option, visible_levels: usize, + counter: i32, } impl LevelSelectScreen { @@ -35,6 +36,7 @@ impl LevelSelectScreen { is_btm_pressed: false, selected_level: None, visible_levels: 0, + counter: 0, } } } @@ -73,6 +75,8 @@ impl Action for LevelSelectScreen { trace!("execute() called on LevelSelectScreen"); self.render_screen_space(&mut context.renderer.borrow_mut(), &context.config); + self.counter += 1; + if let Some(level) = self.selected_level { // Play the sound context @@ -110,6 +114,7 @@ impl Action for LevelSelectScreen { debug!("Finished LevelSelectScreen"); self.selected_level = None; self.is_btm_pressed = false; + self.counter = 0; Ok(()) } } @@ -140,13 +145,28 @@ impl ScreenSpaceRender for LevelSelectScreen { let mouse_pressed: bool = raylib.is_mouse_button_pressed(MouseButton::MOUSE_LEFT_BUTTON); //Render the title - raylib.draw_rgb_split_text( - Vector2::new(40.0, 80.0), - "Level Select", - 70, - true, - Color::WHITE, - ); + let timer: i32 = get_random_value(50, 400); + if self.counter > timer { + raylib.draw_rgb_split_text( + Vector2::new(40.0, 80.0), + "[Level Select]", + 70, + true, + Color::WHITE, + ); + } + if self.counter > timer + 20 { + self.counter = 0; + } + else { + raylib.draw_rgb_split_text( + Vector2::new(40.0, 80.0), + "[Level Select]", + 70, + false, + Color::WHITE, + ); + } // Render the levels for level in 0..self.visible_levels {