void GetMenuCmd(int *cmd) { // printf("%i - ", keyEsc); if (KeyDown(keyEsc)) { *cmd = CMD_ESC; return; } // printf("%i - ", keyF10); if (KeyDown(keyF10)) AutoCalibrate(); // printf("%i - ", keyF9); if (KeyDown(keyF9)) { gPlayer1Data.controls = KEYBOARD; gPlayer2Data.controls = KEYBOARD; } GetPlayerCmd(cmd, NULL); if (*cmd) return; // printf("%i - ", keyArrowLeft); if (KeyDown(keyArrowLeft)) *cmd |= CMD_LEFT; else if (KeyDown(keyArrowRight)) *cmd |= CMD_RIGHT; // printf("%i - ", keyArrowUp); if (KeyDown(keyArrowUp)) *cmd |= CMD_UP; else if (KeyDown(keyArrowDown)) *cmd |= CMD_DOWN; if (KeyDown(keyEnter)) *cmd |= CMD_BUTTON1; if (KeyDown(keyBackspace)) *cmd |= CMD_BUTTON2; if (KeyDown(SDLK_PLUS)) *cmd |= CMD_VOLUP; if (KeyDown(SDLK_MINUS)) *cmd |= CMD_VOLDOWN; }
void loop() { int xRaw = ReadAxis(xInput); int yRaw = ReadAxis(yInput); int zRaw = ReadAxis(zInput); if (digitalRead(buttonPin) == LOW) { Serial.println(); Serial.print(xRaw); Serial.print(", "); Serial.print(yRaw); Serial.print(", "); Serial.print(zRaw); AutoCalibrate(xRaw, yRaw, zRaw); } else { Serial.print("Raw Ranges: X: "); Serial.print(xRawMin); Serial.print("-"); Serial.print(xRawMax); Serial.print(", Y: "); Serial.print(yRawMin); Serial.print("-"); Serial.print(yRawMax); Serial.print(", Z: "); Serial.print(zRawMin); Serial.print("-"); Serial.print(zRawMax); Serial.println(); Serial.print(xRaw); Serial.print(", "); Serial.print(yRaw); Serial.print(", "); Serial.print(zRaw); // Convert raw values to 'milli-Gs" long xScaled = map(xRaw, xRawMin, xRawMax, -1000, 1000); long yScaled = map(yRaw, yRawMin, yRawMax, -1000, 1000); long zScaled = map(zRaw, zRawMin, zRawMax, -1000, 1000); // re-scale to fractional Gs float xAccel = xScaled / 1000.0; float yAccel = yScaled / 1000.0; float zAccel = zScaled / 1000.0; Serial.print(" :: "); Serial.print(xAccel); Serial.print("G, "); Serial.print(yAccel); Serial.print("G, "); Serial.print(zAccel); Serial.println("G"); delay(500); } }
int SelectControls(int cmd) { static int index = 0; int x, y; if (cmd == CMD_ESC) return MODE_MAIN; if (AnyButton(cmd) || Left(cmd) || Right(cmd)) { PlaySound(rand() % SND_COUNT, 0, 255); switch (index) { case 0: ChangeControl(&gPlayer1Data, &gPlayer2Data); break; case 1: ChangeControl(&gPlayer2Data, &gPlayer1Data); break; case 2: gOptions.swapButtonsJoy1 = !gOptions.swapButtonsJoy1; break; case 3: gOptions.swapButtonsJoy2 = !gOptions.swapButtonsJoy2; break; case 4: return MODE_KEYS; case 5: InitSticks(); AutoCalibrate(); break; default: return MODE_MAIN; } } if (Up(cmd)) { index--; if (index < 0) index = CONTROLS_COUNT - 1; PlaySound(SND_SWITCH, 0, 255); } else if (Down(cmd)) { index++; if (index >= CONTROLS_COUNT) index = 0; PlaySound(SND_SWITCH, 0, 255); } TextStringSpecial("Configure Controls:", TEXT_XCENTER | TEXT_TOP, 0, (SCREEN_WIDTH / 12)); x = CenterX(MenuWidth(controlsMenu, CONTROLS_COUNT)); y = CenterY(MenuHeight(controlsMenu, CONTROLS_COUNT)); DisplayMenuAt(x - 20, y, controlsMenu, CONTROLS_COUNT, index); x += MenuWidth(controlsMenu, CONTROLS_COUNT); x += 10; DisplayControl(x, y, gPlayer1Data.controls); DisplayControl(x, y + TextHeight(), gPlayer2Data.controls); TextStringAt(x, y + 2 * TextHeight(), gOptions.swapButtonsJoy1 ? "Yes" : "No"); TextStringAt(x, y + 3 * TextHeight(), gOptions.swapButtonsJoy2 ? "Yes" : "No"); return MODE_CONTROLS; }