Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Decisión 2d

Iniciado por Warchief, 09 de Octubre de 2005, 04:18:20 PM

« anterior - próximo »

Warchief

 Saludos,

estoy rehaciendo el PFC (no, no me sobra tiempo) y uno de los importantes cambios que tengo que hacer es el sistema de celdas (no, mejor el motor de celdas, que queda más guay).

Actualmente tenemos:



Lo que claramente no nos sirve, porque las celdas se superponen unas a otras. (Bueno, de momento servía, pero ha de cambiarse).

Surgen dos opciones:



La primera permite construir todo con 5 tipos de celdas (E == F), teniendo en cuenta que los 4 puntos cardinales han de tener las combinaciones de los terrenos (5 tipos de terreno):
Cardinales: 4 * VR5,2 = 4*25 = 100
Central     : 5

Total 105 tiles distintos.
Teniendo el dibujo 54 celdas

La segunda tendría sólo dos tipos de celda, pero con las variaciones son:
Tipo A = VR5,3 = 125
Tipo B = VR5,3 = 125

Total 250 tiles distintos
Teniendo el dibujo 18 celdas

Lo que no me mola un pelo en ningun caso. XD
¿Mejor número de celdas o menor número de tiles?

Asumamos que quiero renderizar cuadrados y, si es posible, evitar superposiciones (barrido simple) ¿qué opináis?.

Tyrell

 No entiendo porqué necesitas crear diferentes tipos de tiles para crear hexágonos combinándolos. ¿No sería mejor crear un tile hexagonal con fondo transparente y luego colocar copias por medio de un bucle que controle las coordenadas x,y de cada uno? Hice algo así para Virus:


Pogacha

 Opino igual que Tyrell, me parece que es muy complicado tener tanta combinación ...

tewe76

 Yo tampoco entiendo muy bien el motivo, pero según pone:
CitarLo que claramente no nos sirve, porque las celdas se superponen unas a otras. (Bueno, de momento servía, pero ha de cambiarse).
parece que tiene que evitar que se superpongan...
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Warchief

 En efecto. En la versión actual lo tengo así en 2D.[véase http://img382.imageshack.us/my.php?image=actual7eb.png]
El problema es que no puedo hacer lo mismo con las texturas de los tiles del suelo del 3D. Digamos que tengo un:

tile[x][y]->SetTexture(bla bla bla);


La verdad es que como no he visto solución me estaba planteando:

  • Pasar a cuadrados
  • Modelar los hexágonos como mesh con textura y olvidarme del Terrain.
  • Generar una textura con el proceso 2D y aplicar directamente sobre un suelo no tileado.
  • ...

Ray

 Yo te iba a decir que dibujases cuadrados sobre los hexagonos solo dibujando en su interior, la verdad es que es dificil explicarlo sin una imagen.

A ver..., si tienes un hexagono de 6 vertices, 2 arriba, 2 abajo y uno a cada lado, con los 4 de arriba y abajo haces un cuadrado sobre el que dibujar, despues te quedaria un margen a los lados que siempre sería el mismo para todos.

Aunque lo mejor como ya se ha dicho es que se solapen lo que les de la gana usando trasparencias.

un saludo.

Warchief

 @Ray
El problema ahí es que las zonas que no son casilla son rectangulares, no cuadradas.



@Todos
La verdad es que el problema viene porque el motor no me deja tratar el suelo de otra forma que no sean tiles cuadrados o textura completa para el suelo (lo que no me permite generar tableros dinámicamente, sin tener que pasar por arte). Así que creo que lo mejor es que me olvide del terreno y los trate el tablero como mallas.

A empaparme de 3D un poquito, a ver si consigo hacer un prisma hexagonal y darle textura. XD


Gracias por vuestras ideas.

Tyrell

 
Cita de: "Warchief"el problema viene porque el motor no me deja tratar el suelo de otra forma que no sean tiles cuadrados o textura completa para el suelo (lo que no me permite generar tableros dinámicamente, sin tener que pasar por arte). Así que creo que lo mejor es que me olvide del terreno y los trate el tablero como mallas.
Ya. Ahora te entiendo. Resulta que justamente estoy ahora metido con el mismo tema: hacer un suelo tileado en 3D. Efectivamente, hay que olvidarse de usar terrenos para ello, he creado una malla múltiple que hace las veces de suelo, en mi caso uso cuadrados pero puede hacerse igualmente con hexágonos regulares, y aplicando una textura a cada uno de ellos.

Warchief

 El TiledTerrain a mí me lo daba IrrlichtSpintz (una modificación del Irrlicht original) [ http://irrlicht.spintz.com/ ], ya que Irrlicht no da Tiles. En cualquier caso ya estoy trabajando con mallas.


Del ejemplo de TiledTerrainManager.

for( s32 x = 0; x < 4; x++ )
{
 for( s32 z = 0; z < 4; z++ )
 {
  core::stringc filename = "";

  filename = filenamePrefix;
  filename += x;
  filename += "_";
  filename += z;
  filename += filenameSuffix;

  printf( "Loading terrain tile [%2d][%2d]...\n", x, z );

  // Here we tell the terrain manager to load a tile at the specified position
  terrainManager->LoadTile( x, z, filename.c_str() );

  // Here, we're getting the pointer to the tile we just added and then, since we aren't
  // using any lights, set the material lighting flag to false.  We then set the 2 textures,
  // the first being our standard texture, and the second being the detail texture.  Then
  // we scale the 2nd texture coordinates, so our detail map will repeat 10x over to show
  // even more detail.
  tNode = terrainManager->GetTileNode( x, z );
  tNode->setMaterialFlag( video::EMF_LIGHTING, false );
  tNode->setMaterialTexture( 0, terrainTexture );
  tNode->setMaterialTexture( 1, detailTexture );
  tNode->setMaterialType( video::EMT_DETAIL_MAP );
  tNode->scaleTexture( 1.0f, 10.0f );
 }
}


Saludos.

Tyrell

 Bueno, yo estoy usando Blitz3D, y no tiene función para crear terrenos tileados. De todos modos, me lo he montado con mallas y me funciona perféctamente.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.