Bild wird nicht ausgegeben

Anfängerfragen zum Programmieren mit PureBasic.
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Bild wird nicht ausgegeben

Beitrag 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
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag 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:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Beitrag von Tombi »

Soll das jetzt heißen das es nicht ging, weil ich Images genommen habe? :mrgreen:
Bild Bild Bild
Intel Pentium 4 630 (3 GHZ)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Tombi
Für Screens sind Sprites am besten geeignet und schneller.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten