WindowedScreen Langsam?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

WindowedScreen Langsam?

Beitrag 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:
-.-"
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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:
Benutzeravatar
crossroads
Beiträge: 244
Registriert: 29.08.2004 05:41
Wohnort: Rhine Main Area

Re: WindowedScreen Langsam?

Beitrag 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:
Man soll die Tür aufmachen, bevor man durchgeht ...
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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:
-.-"
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

ok, demfall nochmals danke :allright:
-.-"
Antworten