| Inicio | Noticias | Foros PSP | Juegos | Videos | Manuales | Buscar | Contacto | Staff | Publicidad |

Retroceder   Foros PS Vita y PSP > Comunidad > Coder's Zone: Programacion PSP y PS Vita > TUTORIALES

Respuesta
 
Herramientas
Antiguo 24/10/10, 10:56:18   #1
sting18
Senior Member
 
Avatar de sting18
 
Fecha de Ingreso: ene 2010
Mensajes: 134
Thanks: 5
Thanked 264 Times in 70 Posts
sting18 una joya en brutosting18 una joya en bruto
Predeterminado [Tutoriales C] Empecemos a programar!

En esta ocasion he decidido crear Tutoriales en C para el aprendizaje y disfrute de la comunidad. Vean lo facil que es hacer esto


Tutorial 1: Lo necesario para empezar a programar en C
Comenzemos:


Preparando la PC..

PD: Esto es solo para Windows ya sea XP,vista o 7

Necesitaremos el PSPSDK le descargamos desde aqui:

http://www.megaupload.com/?d=S6VSTX28

En lo que se descarga hacemos esto:

Das inicio despues clik derecho en MI PC (Equipo en Win vista/7) luego en propiedades, opciones avanzadas, variables del entorno y hacemos lo siguiente:

Sí existe una variable llamada path (que es lo mas seguro le das a modificar) y la llamas PATH.

y al final del todo en el campo valor pones ";C:/PSPDev/bin" y la guardas.
En el caso de que no que no exista, pues le das a Nueva y pones de nombre PATH y valor "C:/PSPDev/bin".

Y listo!!. Verdad que es facil xD.

Ahora para probar que su pc ya esta lista para compilar descargen el compilador de aqui:
http://www.megaupload.com/?d=YDSZOL10

y tambien descargan este ejemplo de un boton tester hecho por Ipn2(Miembro de TeamMex) de aqui:

http://www.megaupload.com/?d=ZLLXTDC8

La descarga incluye el main.c el makefile, capturas y el eboot de ejemplo.

Ahora mentan el compilador, el main.c y el makefile en una carpeta da igual el nombre le pongan a la carpeta. Ejecuten el compilador con doble click y les debe tirar el EBOOT.PBP.

Si les tiro el EBOOT.PBP tu PC esta lista para programar

Esto es solo para probar que compile bien ya despues les enseño como escribir en pantalla cargar imagenes, sonidos crear el compilador etc...

Saludos y suerte Coders


Tutorial 2: Escribir en pantalla.

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.

PD: Solo lo de color rojo sera codigo lo demas explicaciones.

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.

// 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.

#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.

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.

#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.

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.

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.

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í:

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.

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:

return 0;

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

}

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.

TARGET = hello
OBJS = main.o

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

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hello World

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 .
__________________
Nada que de lo que te imagines es sierto pero puede ser creado.....

Ve todas mis Creaciones Pagina oficial teammex.
http://teammex.ucoz.es/

Última edición por Boujack fecha: 12/06/11 a las 19:41:12
sting18 is offline   Responder Con Cita
The Following 5 Users Say Thank You to sting18 For This Useful Post:
Boujack (24/10/10), Cancela (24/10/10), MABZ (24/10/10), Pavloco (25/10/10), ^Z3US^ (24/10/10)
Antiguo 24/10/10, 21:31:16   #2
Boujack
Boujack Palace's Renew!
 
Avatar de Boujack
 
Fecha de Ingreso: nov 2009
Ubicación: Puerto Rico
Mensajes: 1.692
Thanks: 1.653
Thanked 740 Times in 366 Posts
Boujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiar

Corazon PSPero 

Predeterminado Re: Lo necesario para empezar a programar en C

Buen tuto e iniciativa.
__________________
Boujack is offline   Responder Con Cita
Antiguo 24/10/10, 21:35:40   #3
MABZ
░▒▓▒░
 
Avatar de MABZ
 
Fecha de Ingreso: abr 2010
Ubicación: BC MEXICO
Mensajes: 546
Thanks: 663
Thanked 408 Times in 188 Posts
MABZ es sencillamente genialMABZ es sencillamente genialMABZ es sencillamente genial
Predeterminado Re: Lo necesario para empezar a programar en C

muchas gracias Sting.
__________________
PSP 3010 6.20 Bien desactualizado xd



Si quieres ser grande piensa en grande "asi" se llega hasta arribaa

TodoPSP
MABZ is offline   Responder Con Cita
Antiguo 25/10/10, 04:58:55   #4
sting18
Senior Member
 
Avatar de sting18
 
Fecha de Ingreso: ene 2010
Mensajes: 134
Thanks: 5
Thanked 264 Times in 70 Posts
sting18 una joya en brutosting18 una joya en bruto
Predeterminado Re: Lo necesario para empezar a programar en C

Ya saben en cuanto pueda le sigo
__________________
Nada que de lo que te imagines es sierto pero puede ser creado.....

Ve todas mis Creaciones Pagina oficial teammex.
http://teammex.ucoz.es/
sting18 is offline   Responder Con Cita
Antiguo 25/10/10, 06:17:01   #5
Pavloco
Senior Member
 
Avatar de Pavloco
 
Fecha de Ingreso: jul 2010
Ubicación: Mexico
Mensajes: 260
Thanks: 498
Thanked 282 Times in 126 Posts
Pavloco una joya en brutoPavloco una joya en bruto
Predeterminado Re: Lo necesario para empezar a programar en C

Esta excelente, sigue con el tuto, yo ya tengo eso instalado pero aun no se programar bien.
__________________

La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca.
Pavloco is offline   Responder Con Cita
Antiguo 25/10/10, 06:43:03   #6
MABZ
░▒▓▒░
 
Avatar de MABZ
 
Fecha de Ingreso: abr 2010
Ubicación: BC MEXICO
Mensajes: 546
Thanks: 663
Thanked 408 Times in 188 Posts
MABZ es sencillamente genialMABZ es sencillamente genialMABZ es sencillamente genial
Predeterminado Re: Lo necesario para empezar a programar en C

Espero con ancias el siguiente tutorial.
MABZ is offline   Responder Con Cita
Antiguo 15/11/10, 01:34:15   #7
bmarcelo
*Aprendiendo a Programar*
 
Avatar de bmarcelo
 
Fecha de Ingreso: ago 2010
Ubicación: Chile
Mensajes: 762
Thanks: 904
Thanked 333 Times in 187 Posts
bmarcelo una joya en brutobmarcelo una joya en brutobmarcelo una joya en bruto
Predeterminado Re: [C] Tuto 2--Escribir en pantalla

gracias me ha servido mucho ;D
¿Podrias hacerte un tuto de como crear un menu mas o menos decente :S ?
__________________


bmarcelo is offline   Responder Con Cita
Antiguo 15/11/10, 01:43:18   #8
Boujack
Boujack Palace's Renew!
 
Avatar de Boujack
 
Fecha de Ingreso: nov 2009
Ubicación: Puerto Rico
Mensajes: 1.692
Thanks: 1.653
Thanked 740 Times in 366 Posts
Boujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiarBoujack alguien especial en quien confiar

Corazon PSPero 

Predeterminado Re: [C] Tuto 2--Escribir en pantalla

Excelente, yo por mi parte siento no poder aportar al foro ni a esta seccion por el momento ando un poco ocupado en mi vida personal.
__________________
Boujack is offline   Responder Con Cita
Antiguo 15/11/10, 05:16:30   #9
bmarcelo
*Aprendiendo a Programar*
 
Avatar de bmarcelo
 
Fecha de Ingreso: ago 2010
Ubicación: Chile
Mensajes: 762
Thanks: 904
Thanked 333 Times in 187 Posts
bmarcelo una joya en brutobmarcelo una joya en brutobmarcelo una joya en bruto
Predeterminado Re: [C] Tuto 2--Escribir en pantalla

Tomate tu tiempo, primero la vida real y despues la virtual
Pero algun dia si podras...
Boujack cuando puedas hacer un tutorial en C te pido que, hazlo con imagenes para facilitarlo a los novatos como yo
y enseñarme a ocupar el 2.5D y el 3D pero primero lo mas facil
__________________


bmarcelo is offline   Responder Con Cita
Respuesta

Bookmarks

Herramientas



La franja horaria es GMT +2. Ahora son las 13:30:54.


Powered by: vBulletin, Versión 3.8.5
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.
Traducción VBulletin por vbulletinhispano.com