Seite 1 von 1

WindowedScreen Langsam?

Verfasst: 23.06.2005 17:12
von Green Snake
hallo

habe folgenden code

Code: Alles auswählen

InitSprite()
InitKeyboard()
If OpenWindow(0,0,0,500,500,#PB_Window_ScreenCentered | #PB_Window_BorderLess,"")
  If OpenWindowedScreen(WindowID(),0,0,500,500,1,1,1)
  EndIf
  
  Repeat
    X = X + 1
    StartDrawing(ScreenOutput())
    Box(X,0,10,10,RGB(255,0,0))
    StopDrawing()
    
    FlipBuffers()
    
    ClearScreen(0,0,0)
    
    ExamineKeyboard()
  Until KeyboardPushed(1)
  End
EndIf
alles geht, jedoch die maus wird zur sanduhr.
das nervt.
wenn ich dort dann aber ein waitwindowevent einfüge, dann wird die maus zwar normal, jedoch geht das dan ultra langsam von statten.
warum das?

danke schonmal :allright:

Verfasst: 23.06.2005 17:16
von NicTheQuick
Mach lieber ein WindowEvent rein und kein WaitWindowEvent, da der letztere Befehl laut seinem Namen auf Events wartet und somit Zeit verloren geht.
Am besten wäre natürlich folgendes:

Code: Alles auswählen

While WindowEvent() :  Wend
...weil man dann in jedem Schleifendurchlauf immer alle ankommenden Events aus der Warteschlage abgeholt hat. :allright:

Re: WindowedScreen Langsam?

Verfasst: 23.06.2005 17:25
von crossroads
Green Snake hat geschrieben:hallo

habe folgenden code

Code: Alles auswählen

InitSprite()
InitKeyboard()
If OpenWindow(0,0,0,500,500,#PB_Window_ScreenCentered | #PB_Window_BorderLess,"")
  If OpenWindowedScreen(WindowID(),0,0,500,500,1,1,1)
  EndIf
  
  Repeat
    X = X + 1
    StartDrawing(ScreenOutput())
    Box(X,0,10,10,RGB(255,0,0))
    StopDrawing()
    
    FlipBuffers()
    
    ClearScreen(0,0,0)
    
    ExamineKeyboard()
  Until KeyboardPushed(1)
  End
EndIf
alles geht, jedoch die maus wird zur sanduhr.
das nervt.
wenn ich dort dann aber ein waitwindowevent einfüge, dann wird die maus zwar normal, jedoch geht das dan ultra langsam von statten.
warum das?

danke schonmal :allright:
WaitWindowEvent wartet eben, bis ein Event stattfindet.
Versuch mal, hinter repeat folgendes einzufügen:

Code: Alles auswählen

Event = WindowEvent()
Delay(2)
Dann müßte es laufen :wink:

Verfasst: 23.06.2005 17:25
von Green Snake
danek dir.

es ging mir eben darum, dass ich auch gadgets verwenden will.
deshalb habe ich waitwindowevent benutz. :allright:
geht aber auch mit dem, und ist halt einfach besser :lol:

danke nochmals :allright:

Verfasst: 23.06.2005 18:55
von NicTheQuick
@Green Snake:
Ich wusste nicht, dass du Gadgets benutzen willst. Die bessere Alternative wäre dann nämlich folgender Code:

Code: Alles auswählen

Repeat
  Select WindowEvent()
    Case #PB_EventCloseWindow
      Break
    
    Case 0
      Delay(1)
    
  EndSelect
ForEver

Verfasst: 23.06.2005 19:59
von Green Snake
ok, demfall nochmals danke :allright: