PDA

Ver la versión completa : Para uno que quiere empezar...



TRaFuGa
23/06/2005, 15:31
A ver, me gustaria empezar a desarrollar un juego pero quiero hacerlo en C ya que es el lenguaje que conozco, y queria saber que compiladores y herramientas necesito y donde encontrar algun manual para poder empezar a hacer algo "gráfico" (he usado el DEV C++ para clase, no se si este sirve...). Pues nada, si alguien puede iniciarme se lo agradeceria muchisimo ^^ :arriba:

AOJ
23/06/2005, 15:37
Me uno a la petición, en mi caso necesitaria un tutorial básico de "como llegar a poner algo en pantalla que no sea texto". No tengo ni idea de como funcionan los buffers de pantalla ni "ná de ná" relacionado con eso :D

Ahora, lo que sea C++, estructuras de datos, y memoria dinámica ... lo que quieras :quepalmo: (pa eso me sirve la uni, no sé hacer ni una triste ventana con un botón de "aceptar", sieeempre todo hecho tirando de linea de comandos :rolleyes: )

chipan
23/06/2005, 15:41
yo no se mucho pero se que el C++ no va nada bien en GP32 (por suerte); asi que tendremos que conformarnos con C a secas (por suerte tambiém).

the_goulin
23/06/2005, 15:45
Bueno, os adelanto un poquillo del codigo fuente del GpSnake q estoy desarrollando, espero que os sirva de algo... de momento...

El codigo no esta optimizado y la parte que imprime la serpiente no esta depurada :P se podria hacer mucho mejor ... pero es lo que pasa cuando empiezas un projecto sin pensar q vas a hacer xD

por cierto, el codigo es muy sencillo ^_^ no creo que sea dificil de entender y si lo es siempre me podeis preguntar.


Nada mas, Saludillos :brindis:

TRaFuGa
23/06/2005, 15:53
Pos no me entero de na... jajajaja joe tio, no me entero de na de na de na!!! jajaa, necesito algo más basico, y las librerias o herramientas necesarias para la programacion para la GP32 directamente ya que mi DEV C++ no compila esas cosas xDD pero gracias de todas formas, lo guardare para cuando sepa un poco más :D

AOJ
23/06/2005, 16:01
Hmmm ahora me he estado mirando el código y ...

Las funciones propiamente tuyas, las comprendo ... pero las funciones de dibujado en pantalla no sé para que sirven ni como las usas >_<. De dónde has sacado la documentación para usarlas exactamente?

Y cada archivo .h es en realidad una imagen? No es una solución un poco "patatera"? *Supongo* que el BMP convertido a h, ocupa bastante más!

Malenko
23/06/2005, 16:14
Y cada archivo .h es en realidad una imagen? No es una solución un poco "patatera"? *Supongo* que el BMP convertido a h, ocupa bastante más!

Eso es un "truco" muy viejo para que no tengas muchas cosas sueltas en ficheros por separado y así queda todo empaquetado en el ejecutable. El formato de la imagen que esta en el .h no tiene porque estar en BMP sino que puede estar en un formato más comprimido, o incluso ya en raw (por así decirlo) de manera que solo tengas que copiarlo al buffer de pantalla,sino cargar la imagen (procesar el fichero bmp).

TRaFuGa
23/06/2005, 16:26
pero no nos explicas el entorno de desarrollo que has usado, las librerias, y lo mas importante, de donde has sacado todo eso!! jejeje y de si existe algun tutorial para novatos :S :musico:

the_goulin
23/06/2005, 17:05
bueniiinooo, esplicare los secretos mas ocultos que tengo ;)

utilizo el Visual C++ 6 con el kit de desarollo oficial de GamePark instalado con las instrucciones del señor Oankali ^_^ .

para pasar las imagenes a ficheros de C utilizo el Gp32Converter.

Lo de la solucion "patatera" no es tal, como bien explican en el post de abajo es simplemente otra manera de archivar los graficos/sonidos.

y bueno, la idea es que si tengo tiempo explicare un poco como empece a hacer el snake u otra cosa mas sencilla Paso a Paso, si es que hay tanta gente interesada no hay problema :)

Saludillos
The_Goulin

TRaFuGa
23/06/2005, 17:18
Por suerte tengo el visual studio 6 que contiene el visual c++ 6, (tb tengo el visual .net 2003), a ver si me bajo las librerias de GamePark esas y las instalo y empiezo con lo bueno.. :D que ya tengo el emulador listo para probar cositas jejeje :D

Malenko
23/06/2005, 19:49
Yo te recomiendo que mires esto:

http://www.gp32spain.com/foros/showthread.php?t=17983

Si quieres un entorno completo para la GP32 tienes el DCFreeDev que esta para descargar en esta misma web (o en el ftp, ahora no me acuerdo) y tiene configurados el sdk, las librerias sdl,un editor de texto y el emulador, va todo junto y funcionando conjuntamente: si le das a debug (o run) te carga el programa en el emulador, etc.

TRaFuGa
23/06/2005, 20:02
Gracias, ya me estoy bajando los archivos del DCFreeDev del FTP pulico de la web, tambien tengo instalado el Fenix por si las moscas jejeje a ver si pronto sale un tutorial para como empezar a programar juegos en C para la GP32 que aun somos muchos los que andamos verdes en estos temas :chupete:

AOJ
23/06/2005, 20:13
Lo de la solucion "patatera" no es tal, como bien explican en el post de abajo es simplemente otra manera de archivar los graficos/sonidos.


Jejeje no te enfades hombre :P. Es que me ha sorprendido ver que en los archivos .h no habia las típicas cabeceras de las funciones y me he quedado todo rallado pensando "Pero que es esta chapuza?" :)

Pero yo a la gente que programa, siempre lo que digo es con un :rever: delante. Tengo mucho que aprender :D

Ale pues a buscar el DCFreeDev o seguir el tuto de Oankali!

the_goulin
23/06/2005, 22:27
Jejeje no te enfades hombre :P. Es que me ha sorprendido ver que en los archivos .h no habia las típicas cabeceras de las funciones y me he quedado todo rallado pensando "Pero que es esta chapuza?" :)

Pero yo a la gente que programa, siempre lo que digo es con un :rever: delante. Tengo mucho que aprender :D

Ale pues a buscar el DCFreeDev o seguir el tuto de Oankali!

no me enfado hombre xDD en serio, la primera vez que yo vi algo asi tambien me sorpredio ^_^.

Por cierto para aprender en mi opinion es mejor el kit oficial, es mas comodo con el VC y ademas te permite "debugar" y te olvidas de emuladores (para algunas cosas no, vease ficheros MOD), cosa que es de gran ayuda.

si lo que quereis es saber como imprimir graficos por pantalla hago un codigo de lo mas sencillote y lo posteo mañana.

Saludillos
The_Goulin

^MiSaTo^
23/06/2005, 23:24
Estoy siguiendo el hilo porq yo tb necesito un "como empezar a hacer algo con la GP" paso a paso... :D Estaria muy bien si nos pudieras dar un primer "empujón"...no se si me explico...
Ah y me he bajado tu codigo, espero q no te moleste... :P

oankali
23/06/2005, 23:38
Si tenéis intención de debugar, solo hay una solución y es pasar por el SDK para Windows con VC++ o VC.Net. Realmente es lo más práctico para desarrollar en C para la GP32 (mientras no utilicéis ensamblador claro).
Si no tenéis VC, recordad que hay una versión grátis que también debería de funcionar.

En mi web encontraréis algunos ejemplos de programas con el código incluido.
En principio se deberían de entender bastante bién.
En mis tutoriales para instalar el SDK para GCC o Windows hay un ejemplo de programilla en modo 16bits para ver si todo va bién. También debería de ser fácil de entender, sobretodo porque és un ejemplo bastante autónomo no como los otros de la web que en general utilizan algunas de mis librerías que también encontraréis en mi web.

Oankali.

TRaFuGa
24/06/2005, 00:14
pero esque tu web esta en ingles, no hay nada en castellano? xD

TRaFuGa
24/06/2005, 00:42
Ya lo he conseguido!! tengo el VC++ 6, con la SDK para programar para la gp32!!! ha compilado el programa de prueba!!! que bien!! y ahora como hago para empezar a hacer algo sencillito? un hola mundo como to dios bien sabe jejeje :D donde hay manuales del lenguaje utilizado para el modi grafico y esas cosas?? :D que ganas tengo de empezar!!!

the_goulin
24/06/2005, 12:23
esta hecho con el kit oficinal (instalación de Oankali)
bueno, para crear el proyecto esta chupao, pillais el ejemplo de Oankali 16btest y creair una copia de la carpeta, le cambiais el nombre poniendole el que mas os guste, en este caso "DrawingGraphic"

Modificais el codigo a vuestro gusto y listo.

El ejemplo que paso simplemente imprime un muñequito en la pantalla, no hace nada mas, bueno si, inicializa la pantalla .

Espero que sirva, si necesitais algo mas ya me lo direis. :lovegps:

Saludillos
The_Goulin





#include <gpdef.h>
#include <gpstdlib.h>
#include <gpgraphic.h>
#include <gpgraphic16.h>
#include <gpfont16.h>

#include "gpmain.h"
#include "Image1.h"


// Macro definitions
#define RGB(Red, Green, Blue) (((unsigned int) ((Red) << 11)) + \
((unsigned int) ((Green) << 6)) + \
((unsigned int) ((Blue) << 1)))

#define PutPixel(ptgpds, x, y, c)\
{\
*((unsigned short *)((ptgpds)->ptbuffer) + (x) * 240 + (239 - (y))) = (c);\
}

GP_HPALETTE h_pal;

// Global variables for surface flipping
GPDRAWSURFACE gtSurface[2];
int giSurface;


// Initialize graphics mode
void InitGraphics(int depth)
{
// Initialize graphic mode
GpGraphicModeSet(depth, NULL);

// Crea les superficies
GpLcdSurfaceGet(&gtSurface[0], 0);
GpLcdSurfaceGet(&gtSurface[1], 1);

// Register surfaces
giSurface = 0;
GpSurfaceSet(&gtSurface[giSurface]);

// Activates LCD if needed
if (!(GpLcdStatusGet() & GPC_LCD_ON_BIT))
GpLcdEnable();

giSurface = 1;
}



// GP32 main function
void GpMain (void * arg)
{
int ticks=0;
InitGraphics(8);

h_pal=GpPaletteCreate(256,Image1_Pal); // cargo la paleta de cololes
GpPaletteSelect(h_pal); // selecciono la paleta
GpPaletteRealize();


while (1) // bucle infinito
{
GpTransBlt(NULL,&gtSurface[giSurface],100,100,16,16
,(unsigned char *) Image1,0,0,Image1_width,Image1_height,0xFD);
// Flip surfaces
GpSurfaceFlip(&gtSurface[giSurface++]);
giSurface &= 0x01;

// A little pause
while (GpTickCountGet() - ticks < 100);
//while((319<<18)!=(((*(volatile unsigned *)0x14a00000))&(0x1ff<<18))); // descomenta esta linea para la Gp32 y dejala comentada para desarollo en el pc
}
}

TRaFuGa
24/06/2005, 13:49
gracias por el programita, me servira para enrdar con el, aunke no esta muy comentado el codigo y no se que hace cada cosa, por suerte ayer encontré la guia api con las funciones de la sdk jejeje (si alguien las quiere que me avise, estan en los foros si no las encontrais aviadme y lo posteo aqui), de todas formas me sirve para empezar a hacer algo propio :D muchas gracias.
Otra cosa que no entiendo es eso de los graficos, como paso un grafico a un .h??? de donde consigo el gp32 converter?? pues nada, a ver si prontito puedo mostraros mis "maravillas" jajajajaja

jjdrako
24/06/2005, 15:33
los .h son librerias, pones #include en tu programa .c lo que te sirve hacer librerias es para no tener tanto codigo y usarlas es llamando a las funciones que tienen como cuando llamas a los de tu principal

TRaFuGa
24/06/2005, 15:37
eso ya lo se xDD a lo que me referia es que the_goulin pasa sus graficos de sus juegos a formato .h (a librerias, en vez de tener una imagen en .bmp, la tiene en .h), y yo quiero saber como pasar de BMP a H para usar en mis juegos...eso para empezar, despues tb quiero saber el tema de las fuentes, textos y todo eso jejeje espero que alguien se curre un pekeño tutorial en castellano :S

the_goulin
24/06/2005, 19:47
Oyo,

El Gp32Converter lo puedes sacar de Aquí (http://edorul.ifrance.com/gp32/)

para pasar los graficos a .H solo necesitas un Bitmap de 8bits o 16bits, ejecutas el gp32converter seleccionas "Load Image File" y buscas tu .bmp

despues pulsas "Convert in a new file" y guardas el .H donde gustes :)

y listo ^_^

Saludillos
The_Goulin

TRaFuGa
24/06/2005, 21:11
Gracias, ahora solo hace falta algun tuto para empezar a hacer cosillas jajaja

the_goulin
25/06/2005, 17:47
Pues nada que he empezado a hacer un documento para gente que no tenga ni idea de crear juegos pero sepa algo de C, lo he colgado en mi Web, de momento no hay nada de código, solo hay pequeñas explicaciones si alguien se lo mira q me diga lo que le parece ^_^ please.

Yo no soy ningún experto :teacher: simplemente intento explicar lo poco que se para que la gente se anime haciendo cosillas :saltando: y los que saben pero necesitan el empujoncillo empiecen la marcha ^_^.

no habro un post nuevo, por que como no hay mucha información aun no quiero que la gente visite la web en vano.

Saludillos,
The_Goulin
www.alonesoft.net/GpSnake.php

^MiSaTo^
25/06/2005, 19:07
jodo tio esta super bien... yo quiero ya la 2ª entregaaaaaaa!!! xDDDDD
Asi da gusto... mu currado si señor.. :saltando:

jjdrako
25/06/2005, 19:39
yo tengo una duda mas que para empezar, para seguir, se puede que tu programa reproduzca mp3 o solo puede wavs??

TRaFuGa
25/06/2005, 20:19
the_goulin tio esta muy bien, pero ya se va necesitando algo más "avanzado" jejejeje, ejemplos de pintar en pantalla y esas cosas, pero el manual esta muy bien, me ha servido para entender todo y hacerme una idea de como hay que programar, muchas gracias tio!!

the_goulin
26/06/2005, 09:50
yo tengo una duda mas que para empezar, para seguir, se puede que tu programa reproduzca mp3 o solo puede wavs??
pues por defecto con el SDK no viene ninguna funcion para reproducir MP3 y ademas supongo que para la Gp32 reproducir MP3 durante un juego seria un poco pesado ¿no?

Saludillos,
The_Goulin

jjdrako
26/06/2005, 10:42
al contrario es pesado con un wav tiene que abrir un archivo mas pesado que un mp3, tardaria menos en leerlo, y lo preguntaba como el programa de sonido reproduce mp3 pues eso

the_goulin
26/06/2005, 13:12
al contrario es pesado con un wav tiene que abrir un archivo mas pesado que un mp3, tardaria menos en leerlo, y lo preguntaba como el programa de sonido reproduce mp3 pues eso

Si, el wav es mas pesado que el MP3 pero para reproducir MP3 necesitas consumir muchos recursos de procesador, lo cual para un videojuego no es muy sano :)

Si lo dices solo por lo pesado del wav puedes meterle archivos MOD que pesan poquito poquito, la mayoria de las veces menos que un MP3

Saludillos,
The_Goulin

jjdrako
26/06/2005, 14:40
y con que programa hago el mod?? porque el wav de la musica que le voy a meter pesa casi 9Mb si la consola luego reproduce los mod pues me vendria de perlas mas que nada para que no pese tanto el juego :D

the_goulin
26/06/2005, 17:13
y con que programa hago el mod?? porque el wav de la musica que le voy a meter pesa casi 9Mb si la consola luego reproduce los mod pues me vendria de perlas mas que nada para que no pese tanto el juego :D

pues con el Skale (http://www.skale.org/) por ejemplo, pero la musiquilla te la tendras de currar y ademas aprender a manejar el programilla que es muy parecido al fasttracker, yo lo estoy mirando ahora y me esta costando lo mio :P

que tengas suerte

Saludillos,
The_Goulin

the_goulin
03/07/2005, 23:10
Bueno, para que veáis que no os dejo colgados y que sigo INTENTANDO escribir algo que se entienda he colgado en mi Web el segundo documento en el que estoy currando que AUN NO ESTA TERMINADO, solo esta la mitad del documento (un 75% vamos) pero me gustaría saber si se entiende bien.

Así que si algún alma caritativa se pasa y se lo lee y luego lo comenta por aqui, poooss vamos que me da una alegría y sigo escribiendo, si esta mal, pues se intenta arreglar y si os gusta pues mejor.

Lo dicho que no esta terminado, falta medio texto y no están las imágenes que ayudaran bastante.


Saludillos,
The_Goulin

jjdrako
04/07/2005, 11:28
hombre no estaria mal que lo dejaras bajar en un .doc aunque sea, lo digo para mirar en tu pc y no estar que ir buscando tu pagina cada vez que quieres echar un vistazo ;)

Karkayu
04/07/2005, 17:54
Así que si algún alma caritativa se pasa y se lo lee y luego lo comenta por aqui, poooss vamos que me da una alegría y sigo escribiendo, si esta mal, pues se intenta arreglar y si os gusta pues mejor.

YO soy tu alma caritativa :D

No, en serio. Esta muy bien y a mi me han ayudado.
Eso si, quien quiera leerlo debe de tener conocimientos de programacion en C.

Si sigues escribiendo, yo seguiré leyendolos, ok?? :saltando:

Si veo algo mal te lo comento en plan critica construtiva ;)

A cuidarse
:brindis:

the_goulin
04/07/2005, 22:16
YO soy tu alma caritativa :D

No, en serio. Esta muy bien y a mi me han ayudado.
Eso si, quien quiera leerlo debe de tener conocimientos de programacion en C.

Si sigues escribiendo, yo seguiré leyendolos, ok?? :saltando:

Si veo algo mal te lo comento en plan critica construtiva ;)

A cuidarse
:brindis:
Gracias ^_^

Necestito esas criticas tanto buenas como malas como agua de mayo, soy de los que piensan que para hacerlo mal mejor no hacerlo y puestos a hacerlo pues se hace lo mejor que se ^_^.

la idea es que si queda "bien" pasarlo a PDF plan cuadernillo de programación, ahora voy un poco mas lento escribiendo por que estoy liado las pruebas de dos jueguecillos nuevos ^_^ ya os contare.

Pues eso que please comentarme que os parece,

Saludillos,
The_Goulin

^MiSaTo^
05/07/2005, 00:13
YUJUUUUUUUUUUUU!!!!!!!!!!!! :saltando: :saltando: :saltando:
con gente asi da gusto iniciarse en este mundillo!!!
Así ya se como arrancar con mi Pong :D :rever: :rever: :rever:
Muuuuuchas gracias de nuevo, está super currado
:rever: :rever: :rever: Sigue así please!
(No tengo ninguna critica mala)

oankali
06/07/2005, 10:34
Me acabo de leer tus tutos y tengo que admitir que me ha gustado el estilo.
Pero yo de ti intentaría indentar los ejemplos de código. Se hace el código más legible y así das buen ejemplo a los que quieran empezar a programar.
La utilización de otra fuente, por ejemplo Courier New, en todas las palabras claves de programación y en el código también ayuda en el momento de leer el texto.

Después, puntualizar el hecho que si programas con VC y el SDK oficial para Windows, lo que se ejecuta no es un emulador de la GP32, sino que es realmente una aplicación Windows 32 bits pero con una ventana en forma de GP32.
El código generado por el compilador es para procesadores Intel (y derivados), no es para ARM.
Eso significa que en realidad hay 2 SDK oficiales, uno para Windows y otro para ARM (GP32).
Por eso te puedes encontrar con alguna función que aunque no funcione para Windows (se puede solucionar), sí que funciona para la GP32. Como por ejemplo dibujar un círculo.

En el primer tuto, dices que hace falta descargar el SDK de la página de GamePark. No hace falta si sigues mi tutorial, tal como lo has dicho. En mi web se puede encontrar los dos SDK con lo necesario. La única ventaja que tiene el archivo oficial son algunos ejemplillos, pero la instalación es más complicada.

Por cierto, no he seguido los pasos de tu tutorial, así que no sé si es correcto o no. Pero tiene muy buena pinta. Sigue así.

Oankali.