tilemaps laden und ausgeben.

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

M0R73N

Betreff: tilemaps laden und ausgeben.

BeitragFr, Jun 10, 2005 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe mir bei robsite das jump and run tut für 2d gedowloaded.
jetzt müsste ich mal wissen wie es möglich ist mehrere
verschiedene tiles zu laden und wiederzugeben.

ich hab jetzt diesen code. wäre nett wenn ihr den so umschreiben könntet, dass da evtl 2 oder 3 verschieden tiles gemalt werden.

Code: [AUSKLAPPEN]
;Tutorial 1: Erstellen der Level
;-------------------------------
;In diesem Teil möchte ich erklären, wie Level erstellt und auf den Bildschirm
;gebracht wird. Zusätzlich habe ich noch einige Kommentare zu den Befehlen eingegeben.

Graphics 640,480   
      
SetBuffer BackBuffer()   
frametimer = CreateTimer (30)   ;Um das Spiel auf alle Rechnerkonfigurationen gleich schnell laufen
                           ; lassen, sollte man einen Zeitgeber setzen. 25 - 60 sind Empfehlenswert.
                           
ClsColor 0, 0, 255   ; Farbe, mit dem der Bildschirm gelöscht wird

;Gfx laden
Global tile = LoadAnimImage ("tile2.bmp",32,32,0,4)
MaskImage tile, 255, 0, 255   ;Setzt die transparente Farbe auf Lila


;Kartendaten lesen
Dim map (20,15)   ;Karte definieren. Da die Karte später nach X und Y Koordinaten gezeichnet wird,
               ;2 dimensionanes Array

Restore mapdata   ;Setzt die Datazeilen von mapdata zurück
For y=0 To 14      ;Y = 15. Von 0 bis 14
   For x=0 To 19   ;X = 20.
      Read map(x,y)   ;Daten auslesen
   Next
Next


;Hauptschleife
Repeat
Cls                     ;Bildschirm löschen
WaitTimer (frametimer)   ;Den gewählten Zeitgeber warten

DrawMap()               ;Function Drawmap ausführen

Flip                  ;Bildschirm tauschen

Until KeyHit (1)
End


;Functionen
Function DrawMap()
   For y = 0 To 14
      For x = 0 To 19
         If map(x,y) = 1 Then            ;ist in dem genannten (x,y) Array eine 1 gemerkt,
            DrawImage tile, x*32, y*32   ;Grafik malen.
         EndIf
      Next
   Next
End Function 

;Die Koordinaten der Karte werden hier gelesen
.mapdata
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,1,2,3,4,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0


ich hab mir auch das rpg tut gedownloaded, wo ja unterschiedliche tiles
gemalt werden, konnte allerdings keinen unterschied finden.


Danke für eure hilfe.

Mfg M0R73N

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Jun 10, 2005 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
da sind sozusagen ein paar Fehler drin
hast du da schon etwas geändert!

1. es wird eine Animation geladen, genau 4 Bilder
BlitzBasic: [AUSKLAPPEN]
Global tile = LoadAnimImage (\"tile2.bmp\",32,32,0,4) 

2. das Data Feld beinhaltet Zahen von 0 - 4 , was ja auf den ersten Blick richtig erscheint!
wenn 0 = kein Bild malen bedeutet

3. Die Function zum malen läßt nur die Bilder mit 1 zu, was dazu führt das nur das erste Bild gemalt wird , da der letzte Wert nicht gesetzt ist!
BlitzBasic: [AUSKLAPPEN]
Function DrawMap() 
For y = 0 To 14
For x = 0 To 19
If map(x,y) = 1 Then ;ist in dem genannten (x,y) Array eine 1 gemerkt,
DrawImage tile, x*32, y*32 ;Grafik malen.
EndIf
Next
Next
End Function


Halbwegs richtig erscheint mir das 0 kein Bild sein soll,
demnach mßte die Function aber anders aufgebaut sein!
If map(x,y) > 0 then
DrawImage tile, x*32, y*32, map(x,y) - 1 ;Grafik malen.

-1 muß sein weil die AnimationBilder bei 0 anfangen und
Drawimage tile, x, y,4 nicht exitiert!
[BB2D | BB3D | BB+]

M0R73N

BeitragFr, Jun 10, 2005 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
cool^^
danke.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group