mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
FlappyBug: Add new graphics and tweak colors
This adds some actual graphics to the game, and tweaks the obstacle and sky colors. Eventually there will be graphics for those elements too.
This commit is contained in:
parent
f50003bdd2
commit
28e08f08c2
Notes:
sideshowbarker
2024-07-18 11:59:58 +09:00
Author: https://github.com/mimhufford Commit: https://github.com/SerenityOS/serenity/commit/28e08f08c2a Pull-request: https://github.com/SerenityOS/serenity/pull/7668 Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/gunnarbeutner
6 changed files with 18 additions and 8 deletions
Binary file not shown.
Before Width: | Height: | Size: 182 B After Width: | Height: | Size: 195 B |
Binary file not shown.
Before Width: | Height: | Size: 241 B After Width: | Height: | Size: 279 B |
BIN
Base/res/icons/flappybug/falling.png
Normal file
BIN
Base/res/icons/flappybug/falling.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 247 B |
BIN
Base/res/icons/flappybug/flapping.png
Normal file
BIN
Base/res/icons/flappybug/flapping.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 279 B |
|
@ -56,19 +56,20 @@ void Game::paint_event(GUI::PaintEvent& event)
|
|||
GUI::Painter painter(*this);
|
||||
painter.add_clip_rect(event.rect());
|
||||
|
||||
painter.fill_rect(rect(), Color::Black);
|
||||
painter.fill_rect(rect(), m_sky_color);
|
||||
|
||||
painter.fill_rect(enclosing_int_rect(m_obstacle.top_rect()), Color::White);
|
||||
painter.fill_rect(enclosing_int_rect(m_obstacle.bottom_rect()), Color::White);
|
||||
painter.fill_ellipse(enclosing_int_rect(m_bug.rect()), Color::Red);
|
||||
painter.fill_rect(enclosing_int_rect(m_obstacle.top_rect()), m_obstacle.color);
|
||||
painter.fill_rect(enclosing_int_rect(m_obstacle.bottom_rect()), m_obstacle.color);
|
||||
|
||||
painter.draw_scaled_bitmap(enclosing_int_rect(m_bug.rect()), *m_bug.current_bitmap(), m_bug.flapping_bitmap->rect());
|
||||
|
||||
if (m_active) {
|
||||
painter.draw_text({ 10, 10, 100, 100 }, String::formatted("{:.0}", m_difficulty), Gfx::TextAlignment::TopLeft, Color::Green);
|
||||
painter.draw_text({ 10, 10, 100, 100 }, String::formatted("{:.0}", m_difficulty), Gfx::TextAlignment::TopLeft, Color::White);
|
||||
} else if (m_highscore.has_value()) {
|
||||
auto message = String::formatted("Your score: {:.0}\nHighscore: {:.0}\n\n{}", m_last_score, m_highscore.value(), m_restart_cooldown < 0 ? "Press any key to play again" : " ");
|
||||
painter.draw_text(rect(), message, Gfx::TextAlignment::Center, Color::Green);
|
||||
painter.draw_text(rect(), message, Gfx::TextAlignment::Center, Color::White);
|
||||
} else {
|
||||
painter.draw_text(rect(), "Press any key to start", Gfx::TextAlignment::Center, Color::Green);
|
||||
painter.draw_text(rect(), "Press any key to start", Gfx::TextAlignment::Center, Color::White);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,8 +38,10 @@ private:
|
|||
|
||||
struct Bug {
|
||||
const float x { 50 };
|
||||
const float radius { 10 };
|
||||
const float radius { 16 };
|
||||
const float starting_y { 200 };
|
||||
const RefPtr<Gfx::Bitmap> falling_bitmap { Gfx::Bitmap::load_from_file("/res/icons/flappybug/falling.png") };
|
||||
const RefPtr<Gfx::Bitmap> flapping_bitmap { Gfx::Bitmap::load_from_file("/res/icons/flappybug/flapping.png") };
|
||||
float y {};
|
||||
float velocity {};
|
||||
|
||||
|
@ -48,6 +50,11 @@ private:
|
|||
y = starting_y;
|
||||
}
|
||||
|
||||
RefPtr<Gfx::Bitmap> current_bitmap() const
|
||||
{
|
||||
return velocity < 0 ? falling_bitmap : flapping_bitmap;
|
||||
}
|
||||
|
||||
Gfx::FloatRect rect() const
|
||||
{
|
||||
return { x - radius, y - radius, radius * 2, radius * 2 };
|
||||
|
@ -73,6 +80,7 @@ private:
|
|||
|
||||
struct Obstacle {
|
||||
const float width { 20 };
|
||||
Color color { Color::DarkGray };
|
||||
float x;
|
||||
float gap_top_y { 200 };
|
||||
float gap_height { 175 };
|
||||
|
@ -101,6 +109,7 @@ private:
|
|||
float m_last_score;
|
||||
float m_difficulty;
|
||||
float m_restart_cooldown;
|
||||
Color m_sky_color { 100, 100, 200 };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue