2D TileMap

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

CodeFish

Betreff: 2D TileMap

BeitragSo, Sep 19, 2004 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 19, 2004 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir fällt beim überfligen nichts auf....

Sind alle Zeilen in der Datei abgespeichert???
 

David

BeitragSo, Sep 19, 2004 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 19, 2004 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, hir die map-datei.

1123332211
1123332221
1123332222
1112333331
1111233333
1111222222
1111122211

Holzchopf

Meisterpacker

BeitragSo, Sep 19, 2004 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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 BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

sbrog

BeitragSo, Sep 19, 2004 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst die tiles mit loadanimimage laden , und dann mit drawimage zeichnen .
 

David

BeitragSo, Sep 19, 2004 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Bei mir wird alles gezeichnet!

grüße
http://bl4ckd0g.funpic.de

Holzchopf

Meisterpacker

BeitragSo, Sep 19, 2004 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

So, hoffe das hat geholfen.
MfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

David

BeitragSo, Sep 19, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Rolling Eyes

grüße
http://bl4ckd0g.funpic.de

Holzchopf

Meisterpacker

BeitragSo, Sep 19, 2004 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso ok. Ich dachte Graphics hat auch die Nebenwirkung Dims zu löschen...
hab ich mich wohl geirrt Embarassed
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

CodeFish

BeitragSo, Sep 19, 2004 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Holzchopf

Meisterpacker

BeitragSo, Sep 19, 2004 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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 BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

CodeFish

BeitragMo, Sep 20, 2004 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, hat funktioniert, danke Smile

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group