Unterbrechbarer Ablauf
Verfasst: 20.11.2025 18:18
Hallo,
was ich noch nie so richtig verstanden habe: wie kann ich z.B. ein Intro abbrechen mit Taste oder Maus, wenn aber irgendwas noch durchläuft?
Guckt euch mal den Code an: es werden nacheinander 3 verschiedene Hintergründe angezeigt mit 1 Sekunde Abstand.
Wie kann man aber - egal an welcher Stelle - das Intro beenden?
Muss ich da mit Threads arbeiten?
was ich noch nie so richtig verstanden habe: wie kann ich z.B. ein Intro abbrechen mit Taste oder Maus, wenn aber irgendwas noch durchläuft?
Guckt euch mal den Code an: es werden nacheinander 3 verschiedene Hintergründe angezeigt mit 1 Sekunde Abstand.
Wie kann man aber - egal an welcher Stelle - das Intro beenden?
Muss ich da mit Threads arbeiten?
Code: Alles auswählen
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 420, 200, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
CreateStatusBar(0, WindowID(0))
AddStatusBarField(420)
StatusBarText(0, 0, "Automatically zoomed screen area when changing window size...")
If OpenWindowedScreen(WindowID(0), 0, 0, 420, 200, #True, 0, 20)
CreateSprite(0, 50, 50) ; Erstellt ein leeres Sprites, dies wird komplett schwarz sein
Repeat
; Es ist sehr wichtig, alle im Queue befindlichen Ereignisse während jedes Frames abzuarbeiten
;
Repeat
Event = WaitWindowEvent(10)
If Event = #PB_Event_CloseWindow Or Event = #PB_Event_LeftClick
End
EndIf
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 0)) ; Ein blauer Hintergrund
Delay(1000)
FlipBuffers()
ClearScreen(RGB(64, 64, 64)) ; Ein blauer Hintergrund
Delay(1000)
FlipBuffers()
ClearScreen(RGB(64,0,0)) ; Ein blauer Hintergrund
Delay(1000)
ForEver
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
EndIf
EndIf