Proyecto 'Ranita'

Started by Futu-block, February 10, 2010, 11:21:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

He decidido dejar el hilo de ''socorrooooooooo'' para pedir ayuda y cambiarlo por este, que lo llevaré paralelo con uno que haré en proyectos para comentar los avances...


-Primer problema:
estoy usando el tile studio para el mapeado del juego, ¿como vá en el juego? importar map o algo de eso???
¿que libreria me hace falta??


otra cosa que me está dando calor es los modulos, pongo el include y no lo reconoce...



por cierto, estoy haciendo un juego al estilo frogger...

Windgate

INCLUDE tienes que ponerlo después de PROGRAM, prácticamente puedes ponerlo en cualquier sitio siempre que sea después de PROGRAM.

En cuanto al tile studio no tengo idea... Si te genera una imagen puedes meterla en un fpg y cargarla con start_scroll o similar.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Depende de cómo exportes con el tile studio: si exportas en mapa de bits (bmp, png, pcx...) tendrás que manejarlo como si fuera un mapa (o bien lo cargas con LOAD_PNG, o usas la image.dll para cargar otros formatos, o la pasas a MAP o FPG), lo cual, en mi opinión personal, es una tontería, porque para eso te dibujas el mapa a mano, no ahorras memoria ;D
Si lo exportas como mapa de tiles, tendrás que conocerte el fichero de salida, o sea, qué significa cada dato, cargarlo a mano con las funciones de ficheros, y crearte tu propio motor de scroll tileado.

Es por eso que subí el que hice yo, para ahorraros ese trabajo, aunque los formatos que soporta no son compatibles, pero es fácil crearte tu propia función de carga (sólo tienes que rellenar los datos de una variable tipo t_mapa).
Sería muy interesante poder disponer de funciones de carga para los principales formatos del tile studio y del mappy (tambien crear un módulo para bennu de scroll tileado ^^U, si tuviese tiempo...).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

#3
en el .prg del juego pongo:
include "carpeta/modulo.prg";
y al ejecutarlo en .bat me dice que me dá error en el punto y coma...
se lo quito y tampoco
>:(
corregido, no tenia la ruta correcta...

cachis...

y en el apartado de mapa; analizando el juego, se trata de la rana que se mueve por toda la pantalla pero no llega a salir de los bordes, y cada paso de pantalla es un fondo distinto definido por una variable...

¿que me saldria mas ''rentable''?
-Hacer unas 30 pantallas que dura el juego e ir cambiando el graph correspondiente ??
-O por el contrario hacer una pantalla gigantesca donde se muestre la porcion correspondiente donde se encuentra??
esta ultima me parece absurda ya que el juego carece de scroll, ni siquiera tipo ''zelda'' aunque puede que haga algo parecido mezclado con fade... eso ya se verá con el tiempo

al grano: mejor muchos graph intercambiables en el mismo proceso o un graph inmenso indicando la posicion????

DCelso

No se, pero este tipo de proyectos es mejor hacerlos usando tiles, no mapas gigantescos.
Por ejemplo, tienes un fpg de 1000 graficos de 32,32 pixeles y un mapa ,(fase 1, fase 2,etc), se construye con una combinación de éstos usando un archivo propietario para relaccionarlos, por ejemplo un archivo de texto que ponga esto:

ANCHO
ALTO
INDICE DEL PRIMER GRAFICO
INDICE DEL SEGUNDO GRAFICO
INDICE DEL TERCER GRAFICO
..
INDICE DEL ULTIMO GRAFICO

por ejemplo

3
2
8
4
4
5
5
8

que sería un mapa de 3 (columnas)x2(filas) tiles (de 32x32 pixeles que dijimos antes) donde los índices de los tiles a dibujar para crear el mapa serían
8,4,4
5,5,8

Pues así crearías dinámicamente un graph que sería tu mapa a pintar en pantalla  y podrías cambiar facilmente su diseño con solo cambiar en el notepad los datos de lo índices de los tiles y crear infinidad de fases.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

Esta técnica se puede complicar hasta la enésima potencia, por ejemplo puedes añadir varias capas de tiles (como crear el fondo para el suelo y las nuves para el cielo) simplemente poniendo en los índices de los tiles una coma y el nuevo tile para la otra capa.
El ejemplo anterior de 3x2 creándole una capa más podría ser este

3
2
8,10
4,10
4,10
5,0
5,0
8,0

Podrías también insertar por ejemplo al archivo, los datos más relevantes del mapa o fase, como podría ser el título del mapa, quedando

Nivel 1. Carrera por la autopista
3
2
8,10
4,10
4,10
5,0
5,0
8,0

Podrías también insertar la posición inicial de los enemigos de la fase y de la rana.

Hay formatos ya creados para estos menesteres muy avanzados y muy complejos como podría ser mapy.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Yo haría un mapa por cada pantalla (salvo que quieras poner nubes, niebla, lluvia...) siempre que no tengas problemas de RAM.
El usar tiles te ahorra mucha memoria en los FPGs pero el usar mapas te permite que los escenarios no sean "repetitivos", así que elige tú mismo.
En tu caso, hasta podrías prescindir de los mapas de tiles y usar arrays de dos dimensiones para colocar los tiles, pero si quieres que se pueda editar o añadir deberías usar ficheros, aunque sea un formato que consista en x*y bytes con los valores de los tiles, sin cabecera ni nada :)

Por cierto ¿conoceis los formatos de salida del mapy? sería interesante añadirlos a mi motor, porque busqué en su día y no hay información si no lo instalo.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

No entendí a que te refieres con maps, drumpi.
Yo quise exponer que en vez de usar una imagen png de fondo con el mapa ya creado para cada fase que usara una composición de imágenes para crear un mapa en tiempo de ejecución, pero que este mapa ya esté definido siempre para cada fase en un fichero de texto.
No me refería en ningún caso a hacer mapas dinámicos como hace diablo.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Lo que me refiero es que, para una pantalla estática, lo más normal sería usar un mapa del tamaño de la pantalla, previamente prediseñado.
Si no, lo que tu dices, componer el fondo a base de tiles, pero para colocar esos tiles necesitas la información de dónde y cual tile colocar, que es lo que se conoce como "mapa de tiles" (al menos, yo lo llamo así). Vamos, un fichero que contiene un array de dos dimensiones con los números de los gráficos a colocar en cada posición.
Pero que en lugar de ficheros, puede usar un array en memoria.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Futu-block

usaré mejor un mapa por pantalla para el mismo proceso...

por otro lado, para la transacion entre pantallas es mejor usar un fade ¿no?
¿como van?

DCelso

no entiendo a que te refieres con usar un mapa por pantalla para el mismo proceso.
¿A pantalla te refieres a fase? porque un mapa por fase es lo normal en los juegos, a no ser que sea un rpg y tengas el mapa del mundo y varios mapas de ciudades o casas o bosques que juntos formarian la fase 1.

O a mapa te refiera a imagen. es decir una imagen prediseñada y construida de digamos 800x600 por fase.

en cuanto a tu pregunta de usar fade, pues usar fade es mejor que qué otra cosa. Mas que mejor o peor yo diría que si te gusta más o menos hacer una transición gradual desde tu mapa a una pantalla en negro o un cambio brusco o crearte tu propio efecto, por ejemplo un efecto cortina como en la intro de mario bross 3 en el que se ve una pantalla y derrepente aparece una cortina que se va cerrando y tapa la pantalla.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Fade es lo mejor, puedes hacer un fundido a negro (fade(0,0,0,x)), a "encendido" (fade(100,100,100,x)) a rojo (fade(200,100,100,x)), a amarillo (fade(100,200,200,x)) o al color que quieras, incluso efectos muy curiosos con, por ejemplo, fade(100,0,0,x).
Ojo, X es la velocidad, tienes que poner un valor entre 1 y 255. Pero tiene un problemilla, que es lo que comentaba el otro día en otro hilo: la velocidad más lenta de fade te hace el fundido en 64 frames, por lo que si quieres que vaya más lento tienes que cambiar los FPS.

Otros métodos son más lentos y costosos en recursos, y son menos suaves.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

#13
el valor (fade(0,0,0,x)) se llega automaticamente o hay que ponerlo con un contador que vaya sumando poco a poco hasta llegar al apropiado...


Quote from: DCelso on February 12, 2010, 04:48:57 PM
no entiendo a que te refieres con usar un mapa por pantalla para el mismo proceso.
¿A pantalla te refieres a fase? porque un mapa por fase es lo normal en los juegos, a no ser que sea un rpg y tengas el mapa del mundo y varios mapas de ciudades o casas o bosques que juntos formarian la fase 1.

O a mapa te refiera a imagen. es decir una imagen prediseñada y construida de digamos 800x600 por fase.

en cuanto a tu pregunta de usar fade, pues usar fade es mejor que qué otra cosa. Mas que mejor o peor yo diría que si te gusta más o menos hacer una transición gradual desde tu mapa a una pantalla en negro o un cambio brusco o crearte tu propio efecto, por ejemplo un efecto cortina como en la intro de mario bross 3 en el que se ve una pantalla y derrepente aparece una cortina que se va cerrando y tapa la pantalla.

muy facil, la rana se vá a mover por la pantalla sin salirse (creo que eso es un motor de movimiento de personaje, o asi lo llamais); osea que para mi juego tengo la opcion de mover al personaje dentro de una ''rejilla'' de 8 x 6, osease que en la pantalla de la wiz (por ejemplo) tengo 48 posiciones posibles de mi personaje...

desliemonos: mi personaje, la rana, solo puede moverse dentro de un area, no puede salir de lo que es la pantalla o zona de juego (320 x 240) y mientras tanto hay que ponerle un fondo, pues ese fondo cambiara segun el nivel del juego o fase, dando como resultado un 'pseudo - zelda' de nintendo 8-bit en cuestion de mapeado.

al final pondré una seccion del mapa total de fondo de cada fase, no haré un mapa grande sino cada fase por separado



'-' tocho post '-' ^^U



con los modulos sigo teniendo problems, pongo un .prg con una variable global que me valga para todos los demas .prg y no me lo reconoce, ¿sera que solo hay una variable???

Solucinado: hay que ponerlas en orden, primero lo importante o variables y despues lo demas...
que lastima que por una pamplina como esa raye tanto

Drumpi

El parámetro 4 indica la velocidad, lo cual debería darte una pista de que si, es automático, y mientras se está ejecutando, se pone la variable global predefinida FADING a true, al acabar vale false (muy útil para hacer un bucle de espera del fade:
while (fading) frame; end
).

Lo de las globales es eso: que si pones el include antes es como si no se hubiera declarado en ese fichero. Pasa lo mismo con las locales y creo que tambien pasa (o al menos pasaba) con procesos y funciones, pero yo no he tenido problemas con eso.

La mejor solución es que si vas a modularizar usando include, crees archivos (por ejemplo ".inc") con el código y otro con las variables globales y locales y tipos que va a declarar (llámalo por ejemplo ".h").
Luego, al escribir el código, escribes la línea PROGRAM, sigues con los tipos generales, incluyes los .h, defines las globales y locales del programa, incluyes los .inc y ya los procesos y funciones del propio prg. Así todas las variables y tipos definidos podrán ser usados en cualquier parte del programa.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)