Foros - Stratos

Proyectos => Proyecto dx_lib32 => Mensaje iniciado por: kaeris en 26 de Marzo de 2007, 01:02:31 PM

Título: Carga de TileSets
Publicado por: kaeris en 26 de Marzo de 2007, 01:02:31 PM
Hola, el tema es este: Yo tengo 1 tileset con todos los terrenos, casas y demas cosas que decoran a un RPG, el tema es que no se de que forma podria hacer para que por ejemplo cuando el juego tenga que dibujar tal piso, sepa en que lugar esta del tileset... Una forma que conosco es la que usa el Argentum Online, que es indexando todos los graficos en archivos de texto... ¿¿Alguien conoce alguna forma mas eficiente??, ¿¿Como hacen los juegos para saber que tile usar??
Título: Carga de TileSets
Publicado por: BrianPr en 26 de Marzo de 2007, 04:17:32 PM
Hola, yo soy nuevo y estoy aprendiendo a usar la dx_lib32 pero puedo ayudarte creo :P.
Yo hice lo siguiente:
Declaro:

Public grhPiso As Long
Public grhPisos(0 to 2) As GFX_Rect


Donde cargás los gráficos ponés:

grhPiso = m_GFX.MAP_Load(App.Path & "\Graficos\215.bmp", 0)
   Dim i As Integer
   For i = 0 To 2
   grhPisos(i).X = i * 64
   grhPisos(i).Y = 0
   grhPisos(i).Height = 64
   grhPisos(i).Width = 64
   Next

Y donde renderizás:
Call m_GFX.MAP_SetRegion(grhPiso, grhPisos(13))
Call m_GFX.DRAW_Map(grhPiso, 0, 0, 0, 0, 0)


Si no me equivoco está todo, obvio que no puse todo el código, pero esto funciona con gráficos del Argentum, fijate que cargué el 215.bmp que es el de los pisos xD.
Lo que hace es cargar 3 graficos (grhpisos) y los indexa con el for, sólo agarra los de la primer fila.
Saludos!.-
Título: Carga de TileSets
Publicado por: [EX3] en 26 de Marzo de 2007, 05:15:16 PM
Yo usaria un formato binario de tabla, algo similar al que usa BrianPr, tal que asi:

Type TileOffSet
   offsetX As Long ' Posicion X en el set
   offsetY As Long ' Posicion Y en el set
   Name As String ' Nombre del tile
End Type

Type TileSet
   Tiles As Long ' Numero de tiles que conforman el tileset
   Tile() As TileOffSet ' Lista de tiles y sus coordenadas
End Type

Dim tablaTile As TileSet ' Tabla con contenido de los tiles y su posicion

VB 6.0 trabaja mas rapido con datos en binario que con texto. Si todos los tiles son de igual tamaño (16x16 por ejemplo) puedes hacer manualmente un sencillo programa que añada las posiciones y el nombre del tile, con o sin nombre del tile, y buscarias el tile por indice de posicion en la lista.

With tablaTile(15)
   .Tile.X
   .Tile.Y
End With

Ojo, que tambien lo puedes hacer por texto como el Argentum, todo es cuestion de cuanto y como quieras trabajarte el codigo. Yo por mi parte suelo decantarme mas por la optimizacion que por la comodidad pero guardando un leve equilibrio, claro :P

Salu2...
Título: Carga de TileSets
Publicado por: kaeris en 26 de Marzo de 2007, 09:26:03 PM
muchas gracias, ahi ya me solucionaron lo de los pisos e items... pero tambien tengo graficos como casas y torres que tienen diferentes tamaños  :?  ahi es cuando se presenta el problema
Título: Carga de TileSets
Publicado por: [EX3] en 26 de Marzo de 2007, 11:23:26 PM
Cita de: "kaeris"pero tambien tengo graficos como casas y torres que tienen diferentes tamaños  :?  ahi es cuando se presenta el problema
Sinceramente yo no me complicaria demasiado, sabes como estoy yo implementado este tema en mi juego? Creando paquetes de texturas mediante archivos PAK, lo que no solo me permite olvidarme de los tamaños de texturas, pudiendo usar texturas irregulares, si no poder almacenarlos de forma jerarquica por subdirectorios "virtuales", lo que me permite una organizacion mas detallada. Dicho esto, yo trabajo con texturas sueltas y no tilesets.

Salu2...
Título: Carga de TileSets
Publicado por: Pilton88 en 06 de Mayo de 2007, 06:56:19 AM
Como andan? Estube viendo los codigos, se que es un Tile, pero:
No se a que te referis exactamente con:
"Offset"
"TileSet"

Y, Surf.. o Surface, que es? para que se utiliza?
Disculpen, pero soy nuevo en la prog. de juegos.
Se les agradece.

PD: O sea, se que son tipos definidos por el usuario... variables, etc. Pero, no entiendo a que se refieren con Set... o Off...
Título: Carga de TileSets
Publicado por: [EX3] en 06 de Mayo de 2007, 02:13:47 PM
"Offset" hace referencia a la posicion de un tile en un "tileset" o mapa de tiles.

El termino superficie lo tienes descrito en la documentacion de la libreria al igual que unos pocos mas que se utilizan en la propia documentacion asi como su uso y posibles utilidades.

Salu2...
Título: Carga de TileSets
Publicado por: Pilton88 en 06 de Mayo de 2007, 03:15:37 PM
Gracias EX3, siempre sacandome de las dudas :).
Saludos!