Tap enabe and disable added; fixed soundOn icon
This commit is contained in:
parent
0e13674a79
commit
c0c78411df
@ -305,6 +305,20 @@ static void toggle_sound(endless_runner_state_t *state) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void enable_tap_control(endless_runner_state_t *state) {
|
||||||
|
if (!state->tap_control_on) {
|
||||||
|
movement_enable_tap_detection_if_available();
|
||||||
|
state->tap_control_on = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void disable_tap_control(endless_runner_state_t *state) {
|
||||||
|
if (state->tap_control_on) {
|
||||||
|
movement_disable_tap_detection_if_available();
|
||||||
|
state->tap_control_on = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void display_title(endless_runner_state_t *state) {
|
static void display_title(endless_runner_state_t *state) {
|
||||||
uint16_t hi_score = state -> hi_score;
|
uint16_t hi_score = state -> hi_score;
|
||||||
uint8_t difficulty = state -> difficulty;
|
uint8_t difficulty = state -> difficulty;
|
||||||
@ -325,6 +339,7 @@ static void display_title(endless_runner_state_t *state) {
|
|||||||
watch_display_text(WATCH_POSITION_BOTTOM, buf);
|
watch_display_text(WATCH_POSITION_BOTTOM, buf);
|
||||||
}
|
}
|
||||||
display_difficulty(difficulty);
|
display_difficulty(difficulty);
|
||||||
|
if (state -> soundOn) watch_set_indicator(WATCH_INDICATOR_BELL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void display_time(watch_date_time_t date_time, bool clock_mode_24h) {
|
static void display_time(watch_date_time_t date_time, bool clock_mode_24h) {
|
||||||
@ -532,8 +547,8 @@ bool endless_runner_face_loop(movement_event_t event, void *context) {
|
|||||||
endless_runner_state_t *state = (endless_runner_state_t *)context;
|
endless_runner_state_t *state = (endless_runner_state_t *)context;
|
||||||
switch (event.event_type) {
|
switch (event.event_type) {
|
||||||
case EVENT_ACTIVATE:
|
case EVENT_ACTIVATE:
|
||||||
|
disable_tap_control(state);
|
||||||
check_and_reset_hi_score(state);
|
check_and_reset_hi_score(state);
|
||||||
if (state -> soundOn) watch_set_indicator(WATCH_INDICATOR_BELL);
|
|
||||||
display_title(state);
|
display_title(state);
|
||||||
break;
|
break;
|
||||||
case EVENT_TICK:
|
case EVENT_TICK:
|
||||||
@ -549,10 +564,13 @@ bool endless_runner_face_loop(movement_event_t event, void *context) {
|
|||||||
break;
|
break;
|
||||||
case EVENT_LIGHT_BUTTON_UP:
|
case EVENT_LIGHT_BUTTON_UP:
|
||||||
case EVENT_ALARM_BUTTON_UP:
|
case EVENT_ALARM_BUTTON_UP:
|
||||||
if (game_state.curr_screen == SCREEN_TITLE)
|
if (game_state.curr_screen == SCREEN_TITLE) {
|
||||||
|
enable_tap_control(state);
|
||||||
begin_playing(state);
|
begin_playing(state);
|
||||||
else if (game_state.curr_screen == SCREEN_LOSE)
|
}
|
||||||
|
else if (game_state.curr_screen == SCREEN_LOSE) {
|
||||||
display_title(state);
|
display_title(state);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_LIGHT_LONG_PRESS:
|
case EVENT_LIGHT_LONG_PRESS:
|
||||||
if (game_state.curr_screen == SCREEN_TITLE)
|
if (game_state.curr_screen == SCREEN_TITLE)
|
||||||
@ -580,10 +598,11 @@ bool endless_runner_face_loop(movement_event_t event, void *context) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_ALARM_LONG_PRESS:
|
case EVENT_ALARM_LONG_PRESS:
|
||||||
if (game_state.curr_screen != SCREEN_PLAYING)
|
if (game_state.curr_screen == SCREEN_TITLE)
|
||||||
toggle_sound(state);
|
toggle_sound(state);
|
||||||
break;
|
break;
|
||||||
case EVENT_TIMEOUT:
|
case EVENT_TIMEOUT:
|
||||||
|
disable_tap_control(state);
|
||||||
if (game_state.curr_screen != SCREEN_TITLE)
|
if (game_state.curr_screen != SCREEN_TITLE)
|
||||||
display_title(state);
|
display_title(state);
|
||||||
break;
|
break;
|
||||||
@ -597,7 +616,7 @@ bool endless_runner_face_loop(movement_event_t event, void *context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void endless_runner_face_resign(void *context) {
|
void endless_runner_face_resign(void *context) {
|
||||||
(void) context;
|
endless_runner_state_t *state = (endless_runner_state_t *)context;
|
||||||
movement_disable_tap_detection_if_available();
|
disable_tap_control(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,8 @@
|
|||||||
This is a basic endless-runner, like the [Chrome Dino game](https://en.wikipedia.org/wiki/Dinosaur_Game).
|
This is a basic endless-runner, like the [Chrome Dino game](https://en.wikipedia.org/wiki/Dinosaur_Game).
|
||||||
On the title screen, you can select a difficulty by long-pressing LIGHT or toggle sound by long-pressing ALARM.
|
On the title screen, you can select a difficulty by long-pressing LIGHT or toggle sound by long-pressing ALARM.
|
||||||
LED or ALARM are used to jump.
|
LED or ALARM are used to jump.
|
||||||
|
If the accelerometer is installed, you can tap the screen to jump and move through the menus after using the
|
||||||
|
buttons to go into the first game.
|
||||||
High-score is displayed on the top-right on the title screen. During a game, the current score is displayed.
|
High-score is displayed on the top-right on the title screen. During a game, the current score is displayed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -42,7 +44,8 @@ typedef struct {
|
|||||||
uint8_t month_last_hi_score : 4;
|
uint8_t month_last_hi_score : 4;
|
||||||
uint8_t year_last_hi_score : 6;
|
uint8_t year_last_hi_score : 6;
|
||||||
uint8_t soundOn : 1;
|
uint8_t soundOn : 1;
|
||||||
/* 24 bits, likely aligned to 32 bits = 4 bytes */
|
uint8_t tap_control_on : 1;
|
||||||
|
uint8_t unused : 7;
|
||||||
} endless_runner_state_t;
|
} endless_runner_state_t;
|
||||||
|
|
||||||
void endless_runner_face_setup(uint8_t watch_face_index, void ** context_ptr);
|
void endless_runner_face_setup(uint8_t watch_face_index, void ** context_ptr);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user