From 4a062260a552a48809d6f2f50cd122daa16e2094 Mon Sep 17 00:00:00 2001 From: Phuwit Puthipairoj <26784267+phuwit@users.noreply.github.com> Date: Wed, 25 Oct 2023 10:57:03 +0700 Subject: [PATCH] feat: blinking cursor --- source/Main.cpp | 4 ++-- source/Scenes/GameOver.cpp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/source/Main.cpp b/source/Main.cpp index 2c161a6..3ec91b6 100644 --- a/source/Main.cpp +++ b/source/Main.cpp @@ -30,8 +30,8 @@ int main() { // VideoMode videoMode = VideoMode(1920, 1080); // RenderWindow window(videoMode, "Brain Blast!", ContextSettings(0, 0, 8)); -// RenderWindow window(videoMode, "Brain Blast!", Style::None, ContextSettings(0, 0, 8)); - RenderWindow window(videoMode, "Brain Blast!", Style::Fullscreen, ContextSettings(0, 0, 8)); + RenderWindow window(videoMode, "Brain Blast!", Style::None, ContextSettings(0, 0, 8)); +// RenderWindow window(videoMode, "Brain Blast!", Style::Fullscreen, ContextSettings(0, 0, 8)); // window.setMouseCursorVisible(false); window.setVerticalSyncEnabled(true); diff --git a/source/Scenes/GameOver.cpp b/source/Scenes/GameOver.cpp index 778c84b..1df4c7d 100644 --- a/source/Scenes/GameOver.cpp +++ b/source/Scenes/GameOver.cpp @@ -35,6 +35,13 @@ SceneChange GameOver::run(RenderWindow &window) { textSetOriginCenter(nameText); nameText.setPosition(enterYourNameText.getPosition() + Vector2f(0, 100)); + RectangleShape nameCursor = RectangleShape(Vector2f(5, nameText.getCharacterSize())); + nameCursor.setFillColor(Color::White); + shapeSetOriginCenter(nameCursor); + nameCursor.setPosition(nameText.getPosition() + Vector2f(nameText.getLocalBounds().width / 2 + 10, 14)); + + Clock nameCursorTimer; + Text saveText("Save Score", fontBebas); saveText.setFillColor(Color::Black); saveText.setCharacterSize(60); @@ -105,6 +112,16 @@ SceneChange GameOver::run(RenderWindow &window) { } nameText.setString(nameString); textSetOriginCenter(nameText); + nameCursor.setPosition(nameText.getPosition() + Vector2f(nameText.getLocalBounds().width / 2 + 10, 14)); + } + } + + if (nameCursorTimer.getElapsedTime() > milliseconds(500)) { + nameCursorTimer.restart(); + if (nameCursor.getFillColor() == Color::White) { + nameCursor.setFillColor(Color::Transparent); + } else { + nameCursor.setFillColor(Color::White); } } @@ -115,6 +132,7 @@ SceneChange GameOver::run(RenderWindow &window) { window.draw(exitText); window.draw(enterYourNameText); window.draw(nameText); + window.draw(nameCursor); window.draw(saveButton); window.draw(saveText); window.display();