summaryrefslogtreecommitdiff
path: root/Games
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-04-20 04:00:32 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-04-20 04:00:32 +0200
commit6ef8e2df5a6c5689d6993cfb5395e7d334a2bc90 (patch)
treedf5c36381440c34a5d5ab5eafbf1ad1c8e3bbf10 /Games
parent09c087177c533c06f3726c63b749cb291db3f542 (diff)
downloadserenity-6ef8e2df5a6c5689d6993cfb5395e7d334a2bc90.zip
Snake: Use a vegetable icon for the fruit.
Diffstat (limited to 'Games')
-rw-r--r--Games/Snake/SnakeGame.cpp8
-rw-r--r--Games/Snake/SnakeGame.h3
2 files changed, 10 insertions, 1 deletions
diff --git a/Games/Snake/SnakeGame.cpp b/Games/Snake/SnakeGame.cpp
index 5f5541ef08..4aad4e553a 100644
--- a/Games/Snake/SnakeGame.cpp
+++ b/Games/Snake/SnakeGame.cpp
@@ -1,11 +1,13 @@
#include "SnakeGame.h"
#include <LibGUI/GPainter.h>
+#include <SharedGraphics/GraphicsBitmap.h>
#include <stdlib.h>
#include <time.h>
SnakeGame::SnakeGame(GWidget* parent)
: GWidget(parent)
{
+ m_fruit_bitmap = GraphicsBitmap::load_from_file("/res/icons/snake/paprika.png");
srand(time(nullptr));
reset();
}
@@ -19,6 +21,7 @@ void SnakeGame::reset()
m_head = { m_rows / 2, m_columns / 2 };
m_tail.clear_with_capacity();
m_length = 2;
+ m_score = 0;
m_velocity_queue.clear();
stop_timer();
start_timer(120);
@@ -83,6 +86,7 @@ void SnakeGame::timer_event(CTimerEvent&)
if (m_head == m_fruit) {
++m_length;
+ ++m_score;
spawn_fruit();
}
update();
@@ -141,7 +145,9 @@ void SnakeGame::paint_event(GPaintEvent& event)
for (auto& coord : m_tail)
painter.fill_rect(cell_rect(coord), Color::from_rgb(0xaaaa00));
- painter.fill_rect(cell_rect(m_fruit), Color::Red);
+ painter.draw_scaled_bitmap(cell_rect(m_fruit), *m_fruit_bitmap, m_fruit_bitmap->rect());
+
+ painter.draw_text(rect(), String::format("Score: %u", m_score), TextAlignment::TopLeft, Color::White);
}
void SnakeGame::game_over()
diff --git a/Games/Snake/SnakeGame.h b/Games/Snake/SnakeGame.h
index 20c926ff70..3102e029e9 100644
--- a/Games/Snake/SnakeGame.h
+++ b/Games/Snake/SnakeGame.h
@@ -50,4 +50,7 @@ private:
Coordinate m_fruit;
int m_length { 0 };
+ unsigned m_score { 0 };
+
+ RetainPtr<GraphicsBitmap> m_fruit_bitmap;
};