Hola, quisiera que alguien me puediera corregir el codigo que viene aora. Esque intento poner unos botones con funciones API y un teclado. Por separado el codigo me funciona, pero junto, no se por que no...
Ay va el codigo: (109 lineas, el error está en la linea 80)
#include <PA9.h> // Include for PA_Lib #include "gfx/all_gfx.c" #include "gfx/all_gfx.h" u8 line = 0; void Empezar(void){ PA_OutputSimpleText(1, 0, line, "Se iniciara el Homebrew"); line++; } void Creditos(void){ PA_OutputSimpleText(1, 0, line, "Se iniciaran los creditos"); line++; } void Finalizar(void){ PA_OutputSimpleText(1, 0, line, "Se apagara la consola"); line++; } int main(int argc, char ** argv) { PA_Init(); PA_InitVBL(); PA_InitText(1, 0); PA_SetTextCol(1, 31, 0, 0); // pone color al texto, color: rojo // para activar las funciones API PA_Init8bitBg(0, 3); PAPI_Init(0); // Funciones API activadas // Crear el menu de inicio // Crear el boton PAPI_CreateButton(0, 20, 10, 59, 30, &Empezar, "Empezar", 1, 1); // Avajo la esplicacion /*PAPI_CreateButton(0, 20, 20, 32, 32, &Test, "Test", 1, 1); (0, 20, 20, 32, 32, &Test, "Test", 1, 1);+ 0= screen 20= X posicion, 20= Y posicion 32= X size 32= Y size */ // Esplicacion terminada // Boton creado // Otro boton PAPI_CreateButton(0, 20, 45, 59, 30, &Creditos, "Creditos", 1, 1); // Boton terminado //tercer boton de el menu de inicio PAPI_CreateButton(0, 85, 10, 59, 30, &Finalizar, "Finalizar", 1, 1); // Boton terminado // Menu de inicio terminado. /* *************************************************** Algo nuebo, pondremos un teclado virtual *************************************************** */ PA_InitText(1, 0); PA_InitKeyboard(2); PA_KeyboardIn(20, 95); s32 nletter = 0; char letter = 0; /* ************************************************** Teclado casi terminado, continua avajo ************************************************** */ // Bucle infinito while (1){ // De aqui para avajo, terminará el teclado virtual /**************************************************************************/ if (Pad.Newpress.A) PA_SetKeyboardColor(0, 1); // Azul y Rojo if (Pad.Newpress.B) PA_SetKeyboardColor(1, 0); // Rojo y Azul if (Pad.Newpress.X) PA_SetKeyboardColor(2, 1); // Verde y Rojo if (Pad.Newpress.Y) PA_SetKeyboardColor(0, 2); // Azul y Verde letter = PA_CheckKeyboard(); if (letter > 31) { text[nletter] = letter; nletter++; } else if(letter == PA_TAB){ u8 i; for (i = 0; i < 4; i++){ text[nletter] = ' '; nletter++; } } else if ((letter == PA_BACKSPACE)&&nletter) { nletter--; text[nletter] = ' '; } else if (letter == '\n'){ text[nletter] = letter; nletter++; } PA_OutputSimpleText(1, 20, 11, text); // la posicion de donde empieza el texto /*************************************************************************/ // De aqui para arriva, termina el teclado virtual PAPI_CheckButton(); PA_WaitForVBL(); } return 0; }
Espero que puedan ayudarme. Gracias, adiós.
I like:
Es cierto
solo tenia que poner eso, ya me funciona gracias. Por cierto, como as podido corregirlo, si tu version de PAlib no tiene las funciones API ?
No me digas que as ido mirando linea por linea las 109 que hay asta saver el problema?
I like:
no hombre,
he copiado el codigo tal y como lo tenias y en el compilador, al compilarlo me ha dado error en la linea 80 igual que a tí. pero no he podido ejecutarlo porque no tengo la PA_API. Es una declaración char text[80] debes ponerlo despues de los includes.
Saludos!
Visita mi blog. Zenit + 5 will win
A vale
me avias asustado... ...y gracias otra vez, es que estoy haciendo un proyecto junto a otro usuario y bueno, que boy un poco atrasado, asi que no me puedo permitir el lujo de tener errores de forma frecuente. Gracias.
I like:
en mi version de PAlib no me
en mi version de PAlib no me viene la PA_API.h y no puedo probar tu aplicación, de todas maneras tu error está en que no has definido text[]
debes crearla por ejemplo como un vector de caracteres, así:
char text[80];
Saludos!
EDITO: En otra ocasión dinos que error te da asi nos será mas facil darte la solución que no mirar en un codigo de mas de 100 lineas. Gracias.
Visita mi blog. Zenit + 5 will win
Deacuerdo gracias
pero, donde devo poner lo de char text[80]; Antes de os includes, luego, donde?
A y de acuerdo, este es el error:
main.c
c:/devkitPro/homebrew/DubuntuS/source/main.c: In function 'main':
c:/devkitPro/homebrew/DubuntuS/source/main.c:80: error: 'text' undeclared (first use in this function)
c:/devkitPro/homebrew/DubuntuS/source/main.c:80: error: (Each undeclared identifier is reported only once
c:/devkitPro/homebrew/DubuntuS/source/main.c:80: error: for each function it appears in.)
make[1]: *** [main.o] Error 1
make: *** [build] Error 2
aora es mas senzillo, verdad?
I like:
es cierto.
es cierto.