PDA

Ver la versión completa : Como crear una cuadrícula?



Hokutoy
05/09/2005, 18:27
Buenas!

Como últimamente tengo algo de tiempo libre (ya era hora!) me apetece hacer alguna cosita en Fénix tipo Shining Force/Vandal Hearts (tablero/turnos).

Pero tengo un problema de concepto a la hora de pensar en como crear y tratar la cuadrícula del campo de batalla.
Es difícil de explicar y preguntar pero me interesaría que alguien me explicase un buen método para dividir la "pantalla" en cuadrantes teniendo en cuentan que cada cuadrante va a guardar cierta información (si tiene alguien encima, si hay un objeto, si se ve afectado por alguna mágia o defensa etc...) y poder "leer" o "asignar" variables a cada cuadrante con facilidad.

Alguna mente despierta que me pueda ayudar?

Gracias!

oankali
06/09/2005, 10:37
Buenas!

Como últimamente tengo algo de tiempo libre (ya era hora!) me apetece hacer alguna cosita en Fénix tipo Shining Force/Vandal Hearts (tablero/turnos).

Pero tengo un problema de concepto a la hora de pensar en como crear y tratar la cuadrícula del campo de batalla.
Es difícil de explicar y preguntar pero me interesaría que alguien me explicase un buen método para dividir la "pantalla" en cuadrantes teniendo en cuentan que cada cuadrante va a guardar cierta información (si tiene alguien encima, si hay un objeto, si se ve afectado por alguna mágia o defensa etc...) y poder "leer" o "asignar" variables a cada cuadrante con facilidad.

Alguna mente despierta que me pueda ayudar?

Gracias!

En Fénix no tengo ni idea pero en C lo que haría yo es crear una estructura de datos con todas las propiedades que necesitas. Luego declararía un tablero en que cada cuadrante sea del tipo de la estructura.
No sé si en Fénix se pueden declarar arrays de estructuras. Si no se puede siempre te queda la posibilidad de crear varios arrays, uno para cada tipo de información, o un array de strings o un array de longs que tratarías a modo de flags.
No sé si ha quedado muy claro.

Oankali.

Hokutoy
06/09/2005, 18:01
Lo que ha quedado claro es que necesito empollar un poquito más algún libro donde hablen de arrays, punteros, estructuras, etc... :chupete:

Pero voy cogiendo la idea... como mis conocimientos son bastante limitados intentaré, primero, crear una tabla pequeña con pocas propiedades e ir ampliandola poco a poco.

Gracias!

Eskema
06/09/2005, 19:44
A mi me gustaria saber, ¿de donde has sacado o piensas sacar los graficos tipo vandal hearts?, pq tu idea me gusta mucho.

Y como dice oankali lo mejor es hacer estructuras y q cada cuadrado use esa estructura, segun lo q quieras, defensa, ataques,etc.

Saludos,

Hokutoy
06/09/2005, 23:16
Sobre los graficos, no lo voy a hacer tipo Vandal Hearts (Isometrico pseudo-3D)... mas bien será parecido al Shining Force (2D Grapich pawa)

Aunque como me gusta hacer cosas raras pues supongo que acabaré haciendo algo tipo "Streets of Rage AC!D" con tablero y por turnos o alguna paranoia de las mías... jejeje

Posibilidad de acabar o sacar a la luz este proyecto: 12%
Posibilidad de disfrutar/aprender durante su "desarrollo": 100%

:musico:


Byes

Drumpi
22/09/2005, 08:21
Bueno, pensandolo un poco, lo que se me ocurre es que definas un nuevo tipo de variable (creo que se hace con TYPE) y crees un array de ese tipo de variable.

No te lo puedo decir con precision porque nunca he declarado nuevos tipos, pero creo que es algo asi:

TYPE nuevo_tipo
---dato1;
---dato2;
---...
END

nuevo_tipo mi_array[ancho][alto]

(cuando lo normal al declarar arrays es
int mi_array[ancho][alto];
)

Con ello consigues un array de estructuras, mas sencillo que un array de punteros que tienes que asignar a nuevos struct que tienes que crear.
Si eres novato, te recomiendo que pases de complicaciones y uses un array por cada dato que precise cada casilla.

Hokutoy
28/09/2005, 22:08
Gracias Drumpi pero la verdad es que soy bastante novato para provar eso... jejeje.
La verdad es que me lío mucho al tratar con arrays, punteros y structs... no habrá por ahí ejemplos sencillos que demuestren su uso y diferencias?

Al final he optado por crear algo como esto:

Struct tablero[49] x;y;full;area;dmg;hold;

Es una simple estructura pero almenos se deja manejar y se lo que me hago :)
La verdad es que el "proyecto" avanza bastante bien (al final es el SOR TACTICS)... pero ya que estoy hago la siguiente pregunta:

Pongamos que tengo un FPG con los graficos de un personage -Ryu de SF- con su kimono blanco. Si en mi juego quiero reutilizar al personage pero con el kimono de color Negro (por ejemplo) hay alguna manera de modificar el primer FPG para que salga el kimono negro sin crear un nuevo FPG y sin que se modifique algun RYU "blanco" que haya por pantalla???

Gracias!

Drumpi
01/10/2005, 09:06
Bueno, puedes "clonar" el fpg en memoria (no se si la funcion es clone_fpg) y despues modificar los colores, para eso tendrias que trabajar con las blendops en 16bits, algo pelin complejo para novatos, tambien esta la posibilidad de alterar la paleta, pero eso afecta a todos los graficos...
Si no recuerdo mal, en DIV habia una funcion, SET_PALETTE, que te permitia modificar los colores de un fpg o map, pero no recuerdo si se llamaba asi.
Tambien puedes mirarte lo de set_rgb, que transforma una imagen a una escala de un solo color (de ese y sus correspondientes claros y oscuros), te deja al personaje monocromo, pero si es una "sombra" puede ser un efecto interesante.

fenixfan
16/11/2005, 10:29
Ejemplos de tileado, struct, y todo lo que quieras en:

http://www.tutorialgames.net

Para el manejo de datos de cada celda, puedes utilizar el mismo sistema que usan los motores de tileado para los graficos, poniendo otro tipo de datos