Seite 1 von 1

Bild wird nicht ausgegeben

Verfasst: 28.03.2008 23:54
von Tombi
Warum sehe ich trotzdem nichts auf dem Screen?
Screen in Vollbild wird natürlich vorher geöffnet.

Hier die Procedure die in jedem Tick (innerhalb von Repeat/Until) ausgeführt wird:

Code: Alles auswählen

Procedure ShowLandschaft(zeilen.l,werte.l)

LoadImage(0,"gfx/charblack.bmp")
LoadImage(1,"gfx/gras.bmp")
LoadImage(2,"gfx/erde.bmp")
LoadImage(3,"gfx/sand.bmp")
LoadImage(4,"gfx/wasser.bmp")

ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
For x=0 To zeilen-1
  For y=0 To werte-1
    Read map(x,y)
    DrawImage(1,x*25,y*25)
  Next
Next
StopDrawing()
FlipBuffers()

EndProcedure

Verfasst: 29.03.2008 00:08
von RSBasic
@Tombi

Code: Alles auswählen

InitSprite() 
InitKeyboard()

If OpenScreen(1024,768,32,"Screen") 

LoadSprite(0,"gfx/charblack.bmp",0)
LoadSprite(1,"gfx/gras.bmp",0)
LoadSprite(2,"gfx/erde.bmp",0)
LoadSprite(3,"gfx/sand.bmp",0)
LoadSprite(4,"gfx/wasser.bmp",0)

Repeat 
  FlipBuffers() 
  ClearScreen(RGB(0,0,0)) 
  
  DisplaySprite(0,0,0)
  DisplaySprite(1,200,0)
  DisplaySprite(2,400,0)
  DisplaySprite(3,0,200)
  DisplaySprite(4,200,200)
  
  ExamineKeyboard() 
  
  Until KeyboardReleased(#PB_Key_Escape) 
EndIf 
Kannste ja noch anpassen/erweitern :wink:

Verfasst: 29.03.2008 00:47
von Tombi
Soll das jetzt heißen das es nicht ging, weil ich Images genommen habe? :mrgreen:

Verfasst: 29.03.2008 01:05
von RSBasic
@Tombi
Für Screens sind Sprites am besten geeignet und schneller.

Verfasst: 29.03.2008 11:53
von Kaeru Gaman
in der selben procedure laden inst unsinn, das würde ja bedeuten, dass du in jedem schleifendurchlauf neu lädst.
laden brauchst du das nur einmal, ganz am anfang.

außerdem willst du ja irgendwann noch mehr anzeigen als nur die map,
also wäre es wohl sinnvoll,
das clearscreen und das flipbuffers nicht mit in die procedure für die mapdarstellung zu packen.

noch ein problem ist das "Read Map"
wenn du in jedem durchlauf neu die Datas auslesen willst, bist du doch weit hinter der Data-Section.
also, das Datas auslesen auch nur einmal vorher, in der darstellungsschleife holst du die nur noch ausm array.

du wirfst hier also einmaliges dateneinlesen und wiederholte darstellung durcheinander und packst sie in dieselbe schleife.
eigentlich solltest du nicht nur nen schwarzen screen sehen, sondern nen haufen fehlermeldungen.

und ja, images zu drawen ist viel zu langsam für ne tilemap, da musst du wirklich sprites nehmen.