C64 Loading screen?
Posted: Wed Sep 30, 2015 8:28 pm
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
UseJPEGImageDecoder()
OpenWindow(0, 0, 0, 640, 400, "C64 loading", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 640, 400)
LoadImage(0, "c:\tmp\C64.jpg")
AddWindowTimer(0, 1, 25)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Timer
GrabImage(0, 1, x, y, 20, 20)
StartDrawing(CanvasOutput(0))
DrawImage(ImageID(1), x, y)
StopDrawing()
FreeImage(1)
x + 20
If x = 640
x = 0
y + 20
EndIf
If y = 400
RemoveWindowTimer(0, 1)
FreeImage(0)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Code: Select all
EnableExplicit
#WindowedScreen = #True
Define.i x, y, Event, Exit, ScreenOk
UseJPEGImageDecoder()
If InitSprite()
If InitKeyboard()
If #WindowedScreen
If ExamineScreenModes()
While NextScreenMode()
Debug Str(ScreenModeWidth())+"x"+Str(ScreenModeHeight())+"x"+Str(ScreenModeDepth())+"@"+Str(ScreenModeRefreshRate())+"Hz"
Wend
EndIf
MessageRequester("Pause", "Click to go")
If OpenWindow(0, 0, 0, 640, 400, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 640, 400)
ScreenOk = #True
EndIf
EndIf
Else
If OpenScreen(640, 480, 32, "C64 loading")
ScreenOk = #True
EndIf
EndIf
If ScreenOk
If LoadImage(0, "c:\tmp\C64.jpg")
If CreateSprite(0, 640, 480)
Repeat
If #WindowedScreen
Repeat
Event = WindowEvent()
If Event = #PB_Event_CloseWindow
Exit = #True
EndIf
Until Event = 0
EndIf
ClearScreen(0)
If IsImage(0)
GrabImage(0, 1, x, y, 20, 20)
If StartDrawing(SpriteOutput(0))
DrawImage(ImageID(1), x, y)
StopDrawing()
x + 20
If x = 640
x = 0
y + 20
If y = 400
FreeImage(0)
EndIf
EndIf
EndIf
FreeImage(1)
EndIf
DisplaySprite(0, 0, 0)
FlipBuffers()
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_Escape) Or Exit
Else
MessageRequester("Error", "CreateSprite() failed")
EndIf
Else
MessageRequester("Error", "LoadImage() failed")
EndIf
Else
MessageRequester("Error", "OpenScreen() failed")
EndIf
Else
MessageRequester("Error", "InitKeyboard() failed")
EndIf
Else
MessageRequester("Error", "InitSprite() failed")
EndIf