Tiles einer Map

Previous topic - Next topic

Shogun

Hallo alle zusammen,

habe eine Frage zu Tiles. Welche Tile-Größe bevorzugt ihr? Muss ich wirklich jedes einzelne Tile passent zeichnen? Kann man das mit einem Editor realisieren? Wenn ja hat da jemand eine Empfehlung? Muss dann ja auch in GLBasic umgesetzt werden.

Würde mich über jede Hilfe freuen.

Gruß Markus

Schranz0r

kommt auf dein Spiel drauf an was du machen willst.
Normal nimmt man 32 x 32.
Editor kannst du dir selber schreiben, weil so kannst du alles mit einbauen was du für dein Spiel brauchst ( Enemys, Coins, Startpunkt, Ziel usw).
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Shogun

das wäre glaube ich noch ne Nummer zu groß. Ich bräuchte es nur um die Map zu zeichnen, alles andere würde ich ohne machen.
Wäre schön wenn es dafür was gibt.

Schranz0r

Nix für GLB, solltest du schon selber machen.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

D2O

Hi,
schau Dir das mal an.
http://www.glbasic.com/forum/index.php?topic=1507.0
Es nutzt zwar nicht alle Features von Tiled aber für eine einfache Map reicht das.

Was noch sehr einfach ist ist das hier :)

Einfacher Tile Editor,
einfacher Loader.
Genutzt wird hier nur die *.smp Datei,
die *.bmd Datei wird noch nicht beachtet.

Denn Editor gibts hier:
http://devlinslab.blogspot.com/

Code und beispiel Gfx gibts hier:
http://www.deuteriumoxid.com/glbasic/Smp_loader.zip

Code (glbasic) Select

// --------------------------------- //
// Project: Smp_loader
// Start: Monday, June 30, 2008
// IDE Version: 5.308




GLOBAL level AS Tsmp
level = smp_loader("test.smp")

LOADANIM "gfx.png",0,32,32


WHILE TRUE



FOR j = 0 TO level.hight-1
FOR i = 0 TO level.width-1

IF level.map[i][j] = 1 THEN DRAWANIM 0, 1,i*level.tilex,j*level.tiley
IF level.map[i][j] = 2 THEN DRAWANIM 0, 2,i*level.tilex,j*level.tiley
IF level.map[i][j] = 3 THEN DRAWANIM 0, 3,i*level.tilex,j*level.tiley
IF level.map[i][j] = 4 THEN DRAWANIM 0, 4,i*level.tilex,j*level.tiley

NEXT
NEXT





SHOWSCREEN
WEND








FUNCTION smp_loader AS Tsmp : l_map$

LOCAL l_temp AS Tsmp
LOCAL l_ctrl
LOCAL l_get
LOCAL l_width, l_hight
LOCAL l_x,l_y

l_temp.name$ = l_map$  // Name übergeben


l_ctrl = OPENFILE(0,l_map$,TRUE) // Überprüfung ob die map vorhanden ist

IF l_ctrl = TRUE

// FOR i = 0 TO 6   /// ersten 7 bytes sind für den Editornamen
// READBYTE 0,l_temp.chr[i] //l_get
// NEXT

READSTR 0,l_temp.version$,7 /// ersten 7 bytes sind für den Editornamen

READBYTE 0,l_temp.sys //l_get

IF CHR$(l_temp.sys) = "B"   //B ist für byte, W für word

READBYTE 0,l_temp.width //l_width
READBYTE 0,l_temp.hight //l_hight

REDIM l_temp.map[l_temp.width][l_temp.hight] //map[l_width][l_hight]
// mapsize[0] = l_width-1
// mapsize[1] = l_hight-1

ELSE
READWORD 0,l_temp.width //l_width
READWORD 0,l_temp.hight //l_hight

REDIM l_temp.map[l_temp.width][l_temp.hight]

// mapsize[0] = l_width-1
// mapsize[1] = l_hight-1
ENDIF

READBYTE 0,l_temp.tilex //tile[0]
READBYTE 0,l_temp.tiley //tile[1]


FOR l_y = 0 TO l_temp.hight -1 //l_hight-1
FOR l_x = 0 TO l_temp.width -1 // l_width-1


READBYTE 0,l_temp.map[l_x][l_y] //map[l_x][l_y]

NEXT
NEXT



ELSE
PRINT "Error: No find file "+l_map$,10,10
PRINT "Push any key",10,30
SHOWSCREEN
KEYWAIT

ENDIF
CLOSEFILE 0



RETURN l_temp
ENDFUNCTION

TYPE Tsmp
name$ //Name der map
version$ // Aufname der ersten 7 bytes für den Editornamen
tilex // Tilegrösse
tiley
width // Map grösse (Tile einheiten)
hight
sys // Byte oder Word grössen
// chr[7] // Aufname der ersten 7 bytes für den Editornamen
map[0][0] // Mapdaten
ENDTYPE
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell