2D TileMap
Übersicht

CodeFishBetreff: 2D TileMap |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Brauch mal etwas Hilfe, bei mir zeigt es nur die erste Zeile an, wie kann ich die Zeile wechseln?
Code: [AUSKLAPPEN] Level lesen - ReadMap() Dim Level$ (10,7) leveldatei = ReadFile("map.dat") For Zeile = 0 To 9 A$ = ReadLine(leveldatei) For Spalte = 0 To 7 Level$ (Zeile,Spalte) = Mid$(A$,Spalte+1,1) Print Level$(Zeile,Spalte) Next Next CloseFile leveldatei ; Level Zeichnen Graphics 640,800 SetBuffer BackBuffer() tiles = LoadImage("tiles.bmp") For Zeile = 0 To 10 For Spalte = 0 To 7 Select Level$(Zeile,Spalte) Case "1" DrawImageRect tiles, Spalte*64, Zeile*64,1,1,64,64 Case "2" DrawImageRect tiles, Spalte*64, Zeile*64,66,1,64,64 Case "3" DrawImageRect tiles, Spalte*64, Zeile*64,131,1,64,64 End Select Next Next Flip |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mir fällt beim überfligen nichts auf....
Sind alle Zeilen in der Datei abgespeichert??? |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Am leichtesten wäre es für uns, wenn du mal den Inhalt der Datei "map.dat" posten würdest! Scheint ja im ASCII - Format vorzuliegen... grüße |
||
http://bl4ckd0g.funpic.de |
CodeFish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, hir die map-datei.
1123332211 1123332221 1123332222 1112333331 1111233333 1111222222 1111122211 |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
CodeFish: wärs nicht fast einfacher die Tiles mittels LoadAnimImage zu laden und dann beim zeichnen einfach die entsprechenden Tiles zeichnen? Zwar wenn ich denn code so anschaue, hab ich das Gefühl, dass die "Tiles" in der tiles.bmp nicht nahtlos aneinander liegen...
( 64x64 gross, aber bei DrawImageRect Offsets wie 1, 66 und 131? ) Den eigentlichen Fehler hab ich noch grad nicht entdeckt... |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst die tiles mit loadanimimage laden , und dann mit drawimage zeichnen . | ||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Bei mir wird alles gezeichnet! grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah haha. LOL, fehler gefunden:
schreib mal Code: [AUSKLAPPEN] Graphics 640,800 SetBuffer BackBuffer() ganz an den Anfang des Codes. Ausserdem liest du 10 Zielen ein, zeichnest aber 11 Zudem hast du in der Datei 7 Zeilen und 10 Spalten, nicht umgekehrt ![]() So, hoffe das hat geholfen. MfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Holzchopf hat Folgendes geschrieben: Ah haha. LOL, fehler gefunden:
schreib mal Code: [AUSKLAPPEN] Graphics 640,800 SetBuffer BackBuffer() Ob das nun am Anfang steht oder irgendwo anders, is in dem Fall so breit wie lang... ![]() grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso ok. Ich dachte Graphics hat auch die Nebenwirkung Dims zu löschen...
hab ich mich wohl geirrt ![]() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
CodeFish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Leider noch nicht wirklich.
Wenn ich 10 und 7 tausche, zeichnet er immer noch nur die erste Zeile, er sollte aber 7 Zeilen zeichnen. Ja, die Tiels haben einen 1 Pixel großen Rahmen. Hab das Beispiel aus dem Hack und Play Buch, mit der normalen BlitzBasic Demo gecodet. |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, probiere mal folgendes:
Code: [AUSKLAPPEN] Graphics 800,600 SetBuffer BackBuffer() Dim Level$ (10,10) leveldatei = ReadFile("D:\temp\map.map") For Zeile = 0 To 6 A$ = ReadLine(leveldatei) For Spalte = 0 To 9 Level$ (Zeile,Spalte) = Mid$(A$,Spalte+1,1) Text Spalte * 10, Zeile * 12, Level$(Zeile,Spalte) Next Next CloseFile leveldatei ; Level Zeichnen ;tiles = LoadImage("tiles.bmp") While Not KeyDown(1) For Zeile = 0 To 6 For Spalte = 0 To 9 Select Level$(Zeile,Spalte) Case "1" Color 255,0,0 ; DrawImageRect tiles, Spalte*64, Zeile*64,1,1,64,64 Case "2" Color 0,255,0 ; DrawImageRect tiles, Spalte*64, Zeile*64,66,1,64,64 Case "3" Color 0,0,255 ; DrawImageRect tiles, Spalte*64, Zeile*64,131,1,64,64 End Select Rect spalte*64, Zeile*64, 64,64 Next Next Flip Wend End bei mir klappt das wunderbar. Wenn du wieder deine Grafiken, statt die farbigen Felder haben willst - nur zu, ich glaube du weisst welche Kommentare zu entfernen sind ![]() Die Ursache für dein Problem könnte auch sein (wär dann aber ein extrem grosser Zufall), dass, da das Programm (im Debugmodus) im Fenstermodus startet - und da übernimmt Windows die aktualisierung der beiden Buffer. Könnte also sein, dass gerade dann geflipt wird, wenn erst eine Zeile eingezeichnet wurde. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
CodeFish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gut, hat funktioniert, danke ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group