mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-06-05 14:02:53 +00:00
Change button mappings
This commit is contained in:
parent
94c4543b59
commit
91e00bea43
@ -97,6 +97,8 @@ void setup() {
|
||||
tft_initDisplay(tft, TFT_BLACK);
|
||||
tft_initScreenBuffer(TFT_TRANSPARENT);
|
||||
|
||||
tft.setRotation(2);
|
||||
|
||||
sound_init();
|
||||
|
||||
storage_init();
|
||||
|
||||
@ -42,18 +42,18 @@ void menu_changeBackgroundScreen(
|
||||
|
||||
switch (buttonsPressed) {
|
||||
case K1_PRESSED:
|
||||
selectedBackground++;
|
||||
if (selectedBackground >= backgrounds) {
|
||||
selectedBackground = 0;
|
||||
selectedBackground--;
|
||||
if (selectedBackground < 0) {
|
||||
selectedBackground = backgrounds - 1;
|
||||
}
|
||||
storage_initBackground(selectedBackground, bg);
|
||||
screenLastActionTime = currentTime;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
selectedBackground--;
|
||||
if (selectedBackground < 0) {
|
||||
selectedBackground = backgrounds - 1;
|
||||
selectedBackground++;
|
||||
if (selectedBackground >= backgrounds) {
|
||||
selectedBackground = 0;
|
||||
}
|
||||
storage_initBackground(selectedBackground, bg);
|
||||
screenLastActionTime = currentTime;
|
||||
|
||||
@ -24,6 +24,15 @@ void menu_changeCharaScreen(TFT_eSprite& bg, TFT_eSprite &sprite, struct SpriteD
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
selectedChara--;
|
||||
if (selectedChara < 0) {
|
||||
selectedChara = CHARA_COUNT_IN_DEVICE - 1;
|
||||
}
|
||||
selectedCharaData = &charaData[selectedChara];
|
||||
updateScreen = true;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
selectedChara++;
|
||||
if (selectedChara >= CHARA_COUNT_IN_DEVICE) {
|
||||
selectedChara = 0;
|
||||
@ -32,14 +41,14 @@ void menu_changeCharaScreen(TFT_eSprite& bg, TFT_eSprite &sprite, struct SpriteD
|
||||
updateScreen = true;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
case K3_PRESSED:
|
||||
currentCharacter = selectedChara;
|
||||
initialized = false;
|
||||
screenKey = MAIN_SCREEN;
|
||||
menuKey = STATUS_SCREEN;
|
||||
return;
|
||||
|
||||
case K3_PRESSED: {
|
||||
case K4_PRESSED: {
|
||||
char fileName[20];
|
||||
sprintf(fileName, "/chara/%02x.bin", charaData[currentCharacter].idChara);
|
||||
|
||||
|
||||
@ -9,7 +9,14 @@
|
||||
void menu_drawClock(TFT_eSprite& bg) {
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K2_PRESSED | K3_PRESSED:
|
||||
screenKey = CLOCK_EDIT_SCREEN;
|
||||
break;
|
||||
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
case K3_PRESSED:
|
||||
case K4_PRESSED:
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
screenKey = MAIN_SCREEN;
|
||||
break;
|
||||
@ -48,7 +55,7 @@ void menu_drawClockEdit(TFT_eSprite& bg) {
|
||||
clockMinuteCount = (clockMinuteCount + 1) % 60;
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
case K4_PRESSED:
|
||||
// Es un dia random, nada significativo, ya pondre mas adelante que tenga dia del año
|
||||
rtc.setTime(0, clockMinuteCount, clockHourCount, 1, 11, 2024);
|
||||
srand(time(NULL));
|
||||
|
||||
@ -12,18 +12,19 @@ void menu_drawDeathScreen(TFT_eSprite& bg, TFT_eSprite &sprite, struct SpriteDat
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
case K4_PRESSED:
|
||||
lines_getAvailableLines();
|
||||
screenKey = EGG_SELECT_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
case K3_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
lastUpdateTime = currentTime;
|
||||
frameCounter = 0;
|
||||
|
||||
|
||||
@ -15,10 +15,14 @@ void menu_lineSwitcher(TFT_eSprite& bg, TFT_eSprite &sprite, struct SpriteData*
|
||||
uint8_t buttonsPressed = buttons_getPressedButtons();
|
||||
switch(buttonsPressed) {
|
||||
case K1_PRESSED:
|
||||
eggCounter = (eggCounter + 1) % eggNumber;
|
||||
eggCounter = (eggCounter - 1) % eggNumber;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
eggCounter = (eggCounter + 1) % eggNumber;
|
||||
break;
|
||||
|
||||
case K4_PRESSED:
|
||||
menu_reloadEggs(eggCounter);
|
||||
eggCounter = 0;
|
||||
screenKey = EGG_HATCH_SCREEN;
|
||||
|
||||
@ -15,12 +15,25 @@ void menu_foodScreen(TFT_eSprite &bg, TFT_eSprite &mainChara,
|
||||
return;
|
||||
}
|
||||
|
||||
static uint8_t arrowPosition = 0;
|
||||
static int8_t arrowPosition = 0;
|
||||
const int numItems = 2;
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
arrowPosition = (arrowPosition + 1) % 2;
|
||||
printf("[FOOD] arrowPosition=%i\n", arrowPosition);
|
||||
arrowPosition--;
|
||||
if (arrowPosition < 0) {
|
||||
arrowPosition = numItems - 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
printf("[FOOD] arrowPosition=%i\n", arrowPosition);
|
||||
arrowPosition++;
|
||||
if (arrowPosition >= numItems) {
|
||||
arrowPosition = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
@ -31,7 +44,7 @@ void menu_foodScreen(TFT_eSprite &bg, TFT_eSprite &mainChara,
|
||||
break;
|
||||
}
|
||||
|
||||
if (pressedButtons == K2_PRESSED) {
|
||||
if (pressedButtons == K4_PRESSED) {
|
||||
lastUpdateTime = 0;
|
||||
switch (arrowPosition) {
|
||||
case 0:
|
||||
|
||||
@ -7,11 +7,12 @@ void menu_drawFridgeScreen(TFT_eSprite &bg, TFT_eSprite& sprite, struct SpriteDa
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
menuKey = STATUS_SCREEN_MENU;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
case K4_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@ -12,11 +12,12 @@ void menu_drawIdleScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
menuKey = STATUS_SCREEN_MENU;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
case K4_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@ -22,6 +22,13 @@ void menu_drawCurrentMenuOption(TFT_eSprite& bg, TFT_eSprite &icon, struct Sprit
|
||||
menuKey++;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
menuKey--;
|
||||
if (menuKey < 0) {
|
||||
menuKey = FREEZE_SCREEN_MENU;
|
||||
}
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
screenKey = MAIN_SCREEN;
|
||||
menuKey = STATUS_SCREEN_MENU;
|
||||
@ -33,7 +40,7 @@ void menu_drawCurrentMenuOption(TFT_eSprite& bg, TFT_eSprite &icon, struct Sprit
|
||||
}
|
||||
|
||||
// Separaíto mas guapito
|
||||
if (pressedButtons == K2_PRESSED) {
|
||||
if (pressedButtons == K4_PRESSED) {
|
||||
const uint64_t currentTime = esp_timer_get_time();
|
||||
lastUpdateTime = currentTime;
|
||||
|
||||
|
||||
@ -14,8 +14,10 @@ void menu_refuseScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteDat
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
case 4:
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
case K3_PRESSED:
|
||||
case K4_PRESSED:
|
||||
currentAnimationFrame = 0;
|
||||
screenKey = FOOD_SCREEN;
|
||||
soundPlayed = false;
|
||||
|
||||
@ -13,10 +13,14 @@ void menu_resetDataScreen(TFT_eSprite &bg) {
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
selectedOption = (selectedOption + 1) % 2;
|
||||
selectedOption = (selectedOption - 1) % 2;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
selectedOption = (selectedOption + 1) % 2;
|
||||
break;
|
||||
|
||||
case K4_PRESSED:
|
||||
if (selectedOption == 1) {
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
tft_drawCenteredText("RESETTING", 3, 104);
|
||||
|
||||
@ -38,7 +38,7 @@ void switchScreenState() {
|
||||
|
||||
void menu_settingsScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData *spriteData)
|
||||
{
|
||||
static uint8_t arrowPosition = 0;
|
||||
static int8_t arrowPosition = 0;
|
||||
|
||||
static SettingsMenuItem menuItems[] = {
|
||||
{ "BG", SETTINGS_SUBMENU, BACKGROUND_CHANGE_SCREEN, nullptr, nullptr },
|
||||
@ -47,21 +47,31 @@ void menu_settingsScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteD
|
||||
{ "RESET", SETTINGS_SUBMENU, RESET_DATA_SCREEN, nullptr, nullptr }
|
||||
};
|
||||
|
||||
const uint8_t maxItems = sizeof(menuItems) / sizeof(menuItems[0]);
|
||||
const uint8_t numItems = sizeof(menuItems) / sizeof(menuItems[0]);
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
|
||||
case K1_PRESSED:
|
||||
arrowPosition = (arrowPosition + 1) % maxItems;
|
||||
printf("[SETTINGS] arrowPosition=%i\n", arrowPosition);
|
||||
printf("[FOOD] arrowPosition=%i\n", arrowPosition);
|
||||
arrowPosition--;
|
||||
if (arrowPosition < 0) {
|
||||
arrowPosition = numItems - 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
printf("[FOOD] arrowPosition=%i\n", arrowPosition);
|
||||
arrowPosition++;
|
||||
if (arrowPosition >= numItems) {
|
||||
arrowPosition = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
return;
|
||||
|
||||
case K2_PRESSED:
|
||||
case K4_PRESSED:
|
||||
lastUpdateTime = 0;
|
||||
|
||||
if (menuItems[arrowPosition].type == SETTINGS_ACTION) {
|
||||
@ -85,7 +95,7 @@ void menu_settingsScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteD
|
||||
const int startY = 10;
|
||||
const int spacingY = 40;
|
||||
|
||||
for (uint8_t i = 0; i < maxItems; i++) {
|
||||
for (uint8_t i = 0; i < numItems; i++) {
|
||||
bool selected = (i == arrowPosition);
|
||||
int y = startY + (i * spacingY);
|
||||
|
||||
|
||||
@ -19,10 +19,12 @@ void menu_sleepyScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData*
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
break;
|
||||
case 4:
|
||||
|
||||
case K4_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@ -23,11 +23,12 @@ void menu_sleepingScreen(
|
||||
|
||||
uint8_t buttonsPressed = buttons_getPressedButtons();
|
||||
switch (buttonsPressed) {
|
||||
case 8:
|
||||
case K1_PRESSED:
|
||||
case K2_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case K4_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ void menu_statusScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData*
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case 2:
|
||||
case K3_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
void menu_drawTitle(TFT_eSprite &bg, TFT_eSprite &composite) {
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
if (pressedButtons == 8 || pressedButtons == 4) {
|
||||
if (pressedButtons != 0) {
|
||||
screenKey = CLOCK_EDIT_SCREEN;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -58,9 +58,9 @@ void training_screenTraining2(
|
||||
}
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
if (pressedButtons == K1_PRESSED || pressedButtons == K2_PRESSED) {
|
||||
if (pressedButtons == K3_PRESSED || pressedButtons == K4_PRESSED) {
|
||||
randomPosition = rand() % 2;
|
||||
projectilePosition = pressedButtons >> 3; // pressedButtons >> 4 == 1 => K1; != 1 => K2
|
||||
projectilePosition = pressedButtons >> 1; // pressedButtons >> 4 == 1 => K1; != 1 => K2
|
||||
printf("[TRAIN] projectilePosition=%i\n", projectilePosition);
|
||||
|
||||
inactivityTimer = currentTime;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user