void get_players_name(int nb_players, char **names) { s32 pos = 0; char letter = 0; int player = 0; PA_InitKeyboard(1); PA_KeyboardIn(25, 100); while (player < nb_players) { clear_screen(1); letter = PA_CheckKeyboard(); if (letter > 31 && pos < 7) { names[player][pos] = letter; pos++; } else if ((letter == PA_BACKSPACE) && pos) { pos--; names[player][pos] = ' '; } else if (letter == '\n') { names[player][8] = '\0'; player++; pos = 0; } PA_OutputSimpleText(1, 8, 11, names[player]); PA_OutputText(1, 0, 0, "Player %d/%d", player+1, nb_players); PA_WaitForVBL(); } clear_screen(1); PA_KeyboardOut(); }
// Function: main() int main(int argc, char ** argv) { PA_Init(); // Initializes PA_Lib PA_InitVBL(); // Initializes a standard VBL PA_InitText(1, 0); // Initialise the text system PA_InitCustomKeyboard(2, keyboardcustom); // Load the keyboard on background 2... PA_KeyboardIn(20, 95); // This scrolls the keyboard from the bottom, until it's at the right position // PA_KeyboardOut() can be used to scroll the Keyboard out // PA_ScrollKeyboardXY(x, y) can be used to set the keyboards position PA_OutputSimpleText(1, 7, 10, "Text : "); s32 nletter = 0; // Next letter to right. 0 since no letters are there yet char letter = 0; // New letter to write. // Infinite loop to keep the program running while (1) { // We'll check first for color changes, with A, B, and X if (Pad.Newpress.A) PA_SetKeyboardColor(0, 1); // Blue and Red if (Pad.Newpress.B) PA_SetKeyboardColor(1, 0); // Red and Blue if (Pad.Newpress.X) PA_SetKeyboardColor(2, 1); // Green and Red if (Pad.Newpress.Y) PA_SetKeyboardColor(0, 2); // Blue and Green letter = PA_CheckKeyboard(); if (letter > 31) { // there is a new letter text[nletter] = letter; nletter++; } else if(letter == PA_TAB){// TAB Pressed... u8 i; for (i = 0; i < 4; i++){ // put 4 spaces... text[nletter] = ' '; nletter++; } } else if ((letter == PA_BACKSPACE)&&nletter) { // Backspace pressed nletter--; text[nletter] = ' '; // Erase the last letter } else if (letter == '\n'){ // Enter pressed text[nletter] = letter; nletter++; } PA_OutputSimpleText(1, 8, 11, text); // Write the text PA_WaitForVBL(); } return 0; } // End of main()