Bläddra i källkod

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.
Mim Hufford 4 år sedan
förälder
incheckning
28e08f08c2

BIN
Base/res/icons/16x16/app-flappybug.png


BIN
Base/res/icons/32x32/app-flappybug.png


BIN
Base/res/icons/flappybug/falling.png


BIN
Base/res/icons/flappybug/flapping.png


+ 8 - 7
Userland/Games/FlappyBug/Game.cpp

@@ -56,19 +56,20 @@ void Game::paint_event(GUI::PaintEvent& event)
     GUI::Painter painter(*this);
     GUI::Painter painter(*this);
     painter.add_clip_rect(event.rect());
     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) {
     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()) {
     } 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" : " ");
         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 {
     } 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);
     }
     }
 }
 }
 
 

+ 10 - 1
Userland/Games/FlappyBug/Game.h

@@ -38,8 +38,10 @@ private:
 
 
     struct Bug {
     struct Bug {
         const float x { 50 };
         const float x { 50 };
-        const float radius { 10 };
+        const float radius { 16 };
         const float starting_y { 200 };
         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 y {};
         float velocity {};
         float velocity {};
 
 
@@ -48,6 +50,11 @@ private:
             y = starting_y;
             y = starting_y;
         }
         }
 
 
+        RefPtr<Gfx::Bitmap> current_bitmap() const
+        {
+            return velocity < 0 ? falling_bitmap : flapping_bitmap;
+        }
+
         Gfx::FloatRect rect() const
         Gfx::FloatRect rect() const
         {
         {
             return { x - radius, y - radius, radius * 2, radius * 2 };
             return { x - radius, y - radius, radius * 2, radius * 2 };
@@ -73,6 +80,7 @@ private:
 
 
     struct Obstacle {
     struct Obstacle {
         const float width { 20 };
         const float width { 20 };
+        Color color { Color::DarkGray };
         float x;
         float x;
         float gap_top_y { 200 };
         float gap_top_y { 200 };
         float gap_height { 175 };
         float gap_height { 175 };
@@ -101,6 +109,7 @@ private:
     float m_last_score;
     float m_last_score;
     float m_difficulty;
     float m_difficulty;
     float m_restart_cooldown;
     float m_restart_cooldown;
+    Color m_sky_color { 100, 100, 200 };
 };
 };
 
 
 }
 }