Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Carga de TileSets

Iniciado por kaeris, 26 de Marzo de 2007, 01:02:31 PM

« anterior - próximo »

kaeris

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??

BrianPr

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!.-
ww.lemuriaonline.com.ar
www.tech-pc.com.ar

[EX3]

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...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

kaeris

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

[EX3]

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...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Pilton88

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...

[EX3]

"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...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Pilton88

Gracias EX3, siempre sacandome de las dudas :).
Saludos!






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.