summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReinhold Gschweicher <pyro4hell@gmail.com>2021-10-30 22:25:42 +0200
committerJF <JF002@users.noreply.github.com>2021-12-02 21:46:36 +0100
commit054a99cf6c6a8eff181724ceebd5cd3539c62743 (patch)
tree00a46a0442e9d7abd9cfd18a242917fbabb7b9de /src
parentada96ccdc8b725825f571a57bf7b23752c88bc92 (diff)
Paddle: add a little randomization in the dy speed
To make the game a bit more challenging an less predictable add a little bit of randomness to the `dy` value. When hitting the right wall add a random number (one of [-1, 0, 1]) to the `dy` value. To keep the difficulty level managable limit the dy value to be in the range from -5 to 5.
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/screens/Paddle.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/displayapp/screens/Paddle.cpp b/src/displayapp/screens/Paddle.cpp
index aa3420dc..608eb644 100644
--- a/src/displayapp/screens/Paddle.cpp
+++ b/src/displayapp/screens/Paddle.cpp
@@ -2,6 +2,8 @@
#include "displayapp/DisplayApp.h"
#include "displayapp/LittleVgl.h"
+#include <cstdlib> // for rand()
+
using namespace Pinetime::Applications::Screens;
Paddle::Paddle(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl {lvgl} {
@@ -50,6 +52,13 @@ void Paddle::Refresh() {
// checks if it has touched the side (right side)
if (ballX >= LV_HOR_RES - ballSize - 1) {
dx *= -1;
+ dy += rand() % 3 - 1; // add a little randomization in wall bounce direction, one of [-1, 0, 1]
+ if (dy > 5) { // limit dy to be in range [-5 to 5]
+ dy = 5;
+ }
+ if (dy < -5) {
+ dy = -5;
+ }
}
// checks if it is in the position of the paddle