summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/Paddle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens/Paddle.cpp')
-rw-r--r--src/displayapp/screens/Paddle.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/displayapp/screens/Paddle.cpp b/src/displayapp/screens/Paddle.cpp
index 79401ff..1fb2508 100644
--- a/src/displayapp/screens/Paddle.cpp
+++ b/src/displayapp/screens/Paddle.cpp
@@ -53,7 +53,7 @@ void Paddle::Refresh() {
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]
+ if (dy > 5) { // limit dy to be in range [-5 to 5]
dy = 5;
}
if (dy < -5) {
@@ -85,7 +85,14 @@ bool Paddle::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
bool Paddle::OnTouchEvent(uint16_t x, uint16_t y) {
// sets the center paddle pos. (30px offset) with the the y_coordinate of the finger
- lv_obj_set_pos(paddle, 0, y - 30);
+ // but clamp it such that the paddle never clips off screen
+ if (y < 31) {
+ lv_obj_set_pos(paddle, 0, 1);
+ } else if (y > LV_VER_RES - 31) {
+ lv_obj_set_pos(paddle, 0, LV_VER_RES - 61);
+ } else {
+ lv_obj_set_pos(paddle, 0, y - 30);
+ }
paddlePos = y;
return true;
}