]> git.earman.xyz Git - sensor-watch.git/commitdiff
accelerometer moving paddle fully out
authorDavid Volovskiy <devolov@gmail.com>
Sun, 21 Dec 2025 15:50:59 +0000 (10:50 -0500)
committerDavid Volovskiy <devolov@gmail.com>
Sun, 21 Dec 2025 15:53:50 +0000 (10:53 -0500)
watch-faces/complication/ping_face.c
watch-faces/complication/ping_face.h

index 98665fe0aa27583a697b06ef1b96c15f8f32460e..e35762e9d6f724d64df4257abfd74610ba921ffe 100644 (file)
@@ -82,6 +82,7 @@ typedef struct {
     bool paddle_hit;
     bool paddle_released;
     uint8_t curr_freq;
+    bool moving_from_tap;
 } game_state_t;
 
 static game_state_t game_state;
@@ -272,7 +273,7 @@ static void update_paddle(void) {
         }
         break;
     case PADDLE_EXTENDING:
-        if (!HAL_GPIO_BTN_ALARM_read()) {
+        if (!game_state.moving_from_tap && !HAL_GPIO_BTN_ALARM_read()) {
             game_state.paddle_pos = PADDLE_RETRACTED;
         } else {
             game_state.paddle_pos = PADDLE_EXTENDED;
@@ -285,6 +286,7 @@ static void update_paddle(void) {
     case PADDLE_RETRACTING:
         game_state.paddle_pos = PADDLE_RETRACTED;
         watch_display_character(' ', 8);
+        game_state.moving_from_tap = false;
         break;
     default:
         break;
@@ -580,9 +582,14 @@ bool ping_face_loop(movement_event_t event, void *context) {
                 display_score_screen(state);
                 break;
             }
-            //fall through
+            else if (game_state.curr_screen == SCREEN_PLAYING){
+                game_state.moving_from_tap = true;
+                game_state.paddle_hit = true;
+            }
+            break;
         case EVENT_ALARM_BUTTON_DOWN:
             if (game_state.curr_screen == SCREEN_PLAYING){
+                game_state.moving_from_tap = false;
                 game_state.paddle_hit = true;
             }
             break;
index bdd9e395fc50d97cbf204f9fa39e8305c92dafb1..5aa5a62f8bd0f14935892f9afef3fa8ead0d20b6 100644 (file)
@@ -33,7 +33,7 @@
     https://www.instagram.com/reel/DNlTb-ERE1F/
     On the title screen, you can select a difficulty by long-pressing LIGHT or toggle sound by long-pressing ALARM.
     ALARM are used to paddle. Holding the ALARM button longer makes the paddle travel further.
-    If the accelerometer is installed, you can tap the screen to move the paddle.
+    If the accelerometer is installed, you can tap the screen to move the paddle. Paddle will travel its full distance when tapping is used.
     High-score is displayed on the top-right on the title screen. During a game, the current score is displayed.
 */