Hier nochmal der ganze Käse als Screen.
Code: Alles auswählen
#SPRITE_W = 32
#SPRITE_H = 32
#SCREEN_W = 1024
#SCREEN_H = 768
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("ERROR","Cant init DirectX",0):End
EndIf
If OpenScreen(#SCREEN_W,#SCREEN_H,32,"MyScreen")
CreateSprite(1,#SPRITE_W,#SPRITE_H)
StartDrawing(SpriteOutput(1))
Box(0, 0, #SPRITE_W, #SPRITE_H, RGB(90,90,255)) ; Blaue Box
StopDrawing()
CreateSprite(2,#SPRITE_W,#SPRITE_H)
StartDrawing(SpriteOutput(2))
Box(0, 0, #SPRITE_W, #SPRITE_H, RGB(255,255,255)) ; Weisse Box
StopDrawing()
#Start_X = 300 ; start länge
#Start_Y = 300 ; start breite
x = #Start_X
y = #Start_Y
Restore levelData
Repeat
Read levelData
Select levelData
Case 1
DisplaySprite(1,x, y)
x = x + #SPRITE_W ; Nächstes Sprite in der Zeile
Case 2
DisplaySprite(2,x, y)
x = x + #SPRITE_W ; Nächstes Sprite in der Zeile
Case 4
x = #Start_X ; An den Zeilenanfang zurücksetzen
y = y + #SPRITE_H ; Eine Zeile Weiter nach unten
Case 5
Break ; Wenn Ende der Daten erreicht dann raus aus der Schleife.
EndSelect
ForEver
FlipBuffers()
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) ; ESC = Ende
EndIf
DataSection:
levelData:
Data.l 1,1,1,1,1,1,1,4
Data.l 1,2,2,2,2,2,1,4
Data.l 1,2,1,2,1,2,1,4
Data.l 1,2,2,2,2,2,1,4
Data.l 1,2,1,2,1,2,1,4
Data.l 1,2,2,2,2,2,1,4
Data.l 1,1,1,1,1,1,1,5 ; 5 um das das Ende der Daten zu erkennen
EndDataSection