Sábado, 21/Dic/2024, 7:12 AM
                          Inicio

Registrarse

Entrada
Le saludo Huésped | RSS
[ Mensajes nuevos · Participantes · Reglas del foro · Búsqueda · RSS ]
  • Página 1 de 1
  • 1
Mostrar Teaxto en pantalla [C]
sting18Fecha: Viernes, 08/Abr/2011, 0:14 AM | Mensaje # 1
Generalísimo
Grupo: Administradores
Mensajes: 26
Reputación: 32767
Estatus: Offline
Hola este es un totorial en el cual enseñare a escribir en pantalla en lenguaje C para psp.
Primero abrimos nuestro programa para hacer codigos yo uso en lo personal el notepad++ y le damos guardar como "main.c" sin comillas claro y lo guardamos en una carpeta que ustedes quieran pero que este solo el archivo main.c.

Ahora ponemos como se va llamar nuestro programa y y nustro nombre o nick para que sepan quien lo hizo en caso de liberar el codigo.

Code
// Nombre del programa escribir en pantalla //
// Autor sting18 //


porque puse dos diagonales antes de escribir ?? pues porque lo que escribas despues de dos diagonales no sera leido como codigo es para especificar algo por si queremos dar una explicacion a una funcion o X cosa.

Despues hay que poner las librerias necesarias y las que necesitamos para escribir en pantalla son estas.

Code
#include <pspkernel.h>
#include <pspdebug.h>


El primer atributo es el nombre del programa, pero no es realmente el nombre del programa que aparecerá (vamos a cambiar esto más adelante). Los otros valores son otros atributos (sólo lo dejan en paz), la versión principal, y la versión de menor importancia. Vamos a salir de todos estos excepto el nombre de los valores por defecto. Por lo tanto, hay que añadir la siguiente línea a su programa.

Code
PSP_MODULE_INFO("Escribir en pantalla", 0, 1, 1);


Ahora vamos a configurar la función que vamos a utilizar para escribir en la pantalla. Este paso es opcional, pero hace que la escritura de programas basados en texto mucho más fácil. El fundamento detrás de esta línea es para cambiar la función que está integrado en la PSP, llamado "pspDebugScreenPrintf" en algo que es mucho más fácil de escribir. Esta función se utiliza para escribir en la pantalla (que se verá más adelante). Lo que básicamente vamos a hacer aquí es cambiar el nombre de "pspDebugScreenPrintf" a "printf". Así que cada vez que utilizamos "printf" de ahora en adelante, el compilador sólo lo tratan como si ha escrito "pspDebugScreenPrintf". He aquí cómo lo haremos, vamos a definir "printf" como "pspDebugScreenPrintf" de esta manera.

Code
#define printf pspDebugScreenPrintf


Lo que sigue la verdad todavia no se que significa exactamente pero lo pienzo averiguar xD y lo que hace este pedaso de codigo es que al precionar el boton "HOME" podramos salir de nuestro programa.

Code
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}


Ya agregado el codigo de salir del programa empesamos lo que sera nuestro bucle principal y comienza asi.

Code
int main() {


Al inicial cualquier programa lo primero que se lee del codigo es el "main" esto lo hace por defecto asi que todo programa empiesara a leerse en en este pedaso de codigo....Al poner cualquier funcion o accion en C despues de llamar int,void etc... tendremos que poner el nombre y seguido de "()" y empera a a leerlo despues de que pongamos "{".

Cada línea en el programa tendrá un punto y coma al final. La razón de esto es porque el compilador no ve ningún espacio en blanco. Entre líneas, puede tener 100 líneas en blanco, y el compilador no le importaría. Esto es útil porque te permite dar formato a su código de forma que desee, de manera que pueda comprender. Puede agrupar líneas, o hacer lo que quiera con su espacio en blanco. Pero, a su vez, para poner fin a una línea, se necesita un punto y coma. Así que añadir estas dos líneas a su programa para la creación del mismo.

Code
pspDebugScreenInit();
SetupCallbacks();


Ahora es el momento de escribir código que realmente será capaz de ver los resultados de. Recuerde que cuando definimos "pspDebugScreenPrintf" como "printf?" Bueno, ahora es el momento de usar esa función. La forma en que vamos a imprimir texto en la pantalla es llamando a la "printf" la función con un parámetro (Te dije que lo trataremos más adelante.) Un parámetro es una variable que puede pasar a una función para que utilice. Estos serán útiles más tarde cuando usted está escribiendo sus propias funciones. Así, para "printf" en la salida a la pantalla, tenemos que pasar una cadena a la misma. Vamos a la producción "Escribi en pantalla gracias a sting18 jajaja" al pasar esa cadena a la función. "Printf" es una función de gran alcance, porque también se puede utilizar para otras variables de salida a la pantalla. Nos gustaría pasar estos como otros parámetros, pero que todo llegará a su debido tiempo. Por ahora, sólo se imprimirá "Escribi en pantalla gracias a sting18 jajaja" a la pantalla, así:

Code
printf("Escribi en pantalla gracias sting18 jajaja");


Y ahi esta, le ha dicho "printf" en la salida a la pantalla. Ahora sólo tenemos que terminar algunas cosas y luego nuestro código fuente estará listo para compilar. Debemos hacer un alto nuestro programa para que podamos ver la salida. Si no lo hacemos, se acaba o congelación, o regresará al menú de PSP. Usted ni siquiera se llega a ver su hermosa frase "Escribi en pantalla gracias a sting18 jajaja" en la pantalla porque se borrará tan rápido. Por lo tanto, añadir esta línea a detener el programa.

Code
sceKernelSleepThread();


Ahora tenemos que dar nuestra función de un valor de retorno, ya que cuando lo define ("int main ()"), le dijimos al compilador que se volvería un número entero. Así que sólo devuelve un "0" (que es un cero, no un capital 'o') al hacer esto:

Code
return 0;


Y, finalmente, terminar la función tendremos que cerrar el "{" que pusimos al principio y lo cerramos con "}" logico no xD.

Code
}[/code]

depues para que el "}" no quede asta abajo de nuestro codigo y pueda proporcionar errores solo damos dos o tres veces enter depues del "}".

Y eso es todo para el programa! Ahora sólo tenemos que indicar al compilador cómo queremos que este proyecto elaborado por la creación de un Makefile. Por lo tanto crear un nuevo archivo llamado "Makefile." sin extensión (es decir, no. Txt). Una vez que hayas hecho esto, se abre en tu editor de texto.

Ponga lo siguiente en su Makefile.

[code]TARGET = texto
OBJS = main.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Texto

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak


listo guardamos el makefile. junto con el main.c y copiamos el compilador de el tuto pasado y lo pegamos en la carpeta que este el makefile. y el main.c y le damos doble chick al compilador a a compilar saldra un archivo EBOOT.PBP ese eboot.pbp lo ponemos en una carpeta con el nombre que quieran y metemos la carpeta(con el EBOOT:PBP dentro) en la direccion de nuestra memoria PSP/GAME/ y probamos .

Espero y les sirva saludos.

PD:Este tuto esta demaciado explicado es para que aprendan mejor lo puedo hacer mas sencillo y tambien seria entendible digamos que la mitad de todo lo que escri. ustedes dicen lo sigo asi como este o lo ago para que lean menos saludos y comenten .
 
  • Página 1 de 1
  • 1
Búscar:

Copyright MyCorp © 2024 Hacer un sitio web gratis con uCoz