WindowedScreen im ScrollAreaGadget

Anfängerfragen zum Programmieren mit PureBasic.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

ts-soft hat geschrieben:Wenn man jetzt Delay entfernt und WaitWindowEvent(200) benutzt, sinkt
die CPU Last von 80 - 100, auf 5 - 10 %, und ist dann IMHO tatsächlich
benutzbar. Es sei denn man mag kein Multitasking :mrgreen:
Mit so 'ner Aussage sollte man etwas vorsichtig sein, da dies auch Prozessorabhängig ist...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Mit so 'ner Aussage sollte man etwas vorsichtig sein, da dies auch Prozessorabhängig ist...
Aber nur die Werte. Ein WindowEvent() statt eines WaitWindowEvent() ist
IMHO falsch in jedem EventLoop. Mit Timerproceduren oder ähnlich kann man
das Problem auch beseitigen. Aber ein Windowed-Fenster sollte immer
berücksichtigen die CPU nicht unnötig zu belasten. Der Typ der CPU und die
Geschwindigkeit ändern nichts daran, das die CPU so unnötig belastet wird,
und andere Programme in Mitleidenschaft zieht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Tja, da müsste die PB-Hilfe wohl noch mal um einiges überarbeitet werden.

Das WindowEvent und das Delay (1) wurde mir von ihr vorgeschlagen.
Da sind wir wieder beim Thema, wie die Anfänger sich das angewöhnen werden, wenn es schon so in der Hilfe steht.

>> PB-Hilfe:
OpenWindowedScreen()

Sollte man mal drüber nachdenken. Woher soll das jemand wissen, der einfach nur ein Spiel machen möchte /:->
Kinder an die Macht http://scratch.mit.edu/
Stefan
Beiträge: 125
Registriert: 29.08.2004 10:51
Kontaktdaten:

Beitrag von Stefan »

Code: Alles auswählen

InitSprite() 

OpenWindow(0,0,0,300,200,"Big Screen",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
CreateGadgetList(WindowID(0)) 
ScrollAreaGadget(0,0,0,300,200,800,600,1) 
OpenWindowedScreen(ContainerGadget(1,0,0,800,600),0,0,800,600,0,0,0) 
  
StartDrawing(ScreenOutput())    
For n=0 To 100 
Box(Random(800),Random(600),Random(200),Random(200),Random($FFFFFF)) 
Next 
StopDrawing() 
  
Repeat 
Until WaitWindowEvent()=#PB_Event_CloseWindow
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Beitrag von Fusselohr »

:o huu, war doch etwas länger off ^^. Danke für die zahlreichen Posts werd mal danach guggen ^^.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

@Stefan

coole Idee, da frag ich mich doch, wieso das so einfach funktioniert.
Und das noch ohne Fehlermeldung :allright: :allright: :allright:
Kinder an die Macht http://scratch.mit.edu/
Antworten