; ------------------------------------------------------------
;
; SpiderBasic - Screen example file
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
Debug "Use mouse and arrow keys to move the sprites"
OpenScreen(800, 600, 32, "Test")
Global SpriteStep
Global Init
Global nbFrames
SetFrameRate(60)
Procedure RenderFrame()
Static x = 100, y = 200, previousElapsed
ClearScreen(RGB(0, 0, 0))
If ElapsedMilliseconds() - previousElapsed >= 1000
Debug "FPS: " + nbFrames
nbFrames = 0
previousElapsed = ElapsedMilliseconds()
Else
nbFrames + 1
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
x-1
ElseIf KeyboardPushed(#PB_Key_Right)
x+1
EndIf
If KeyboardPushed(#PB_Key_Up)
y-1
ElseIf KeyboardPushed(#PB_Key_Down)
y+1
EndIf
DisplayTransparentSprite(0, x+10, y+10, 60) ; And its shadow
DisplaySprite(0, x, y) ; The spider
EndIf
If ExamineMouse()
SpriteX = MouseX()-SpriteWidth(0)/2
SpriteY = MouseY()-SpriteHeight(0)/2
DisplaySprite(0, SpriteX, SpriteY)
If SpritePixelCollision(0, x, y, 0, SpriteX, SpriteY)
Debug "Pixel Collide !"
EndIf
If MouseButton(#PB_MouseButton_Left)
Debug "Left button"
EndIf
EndIf
FlipBuffers() ; continue the rendering
EndProcedure
Procedure Loading(Type, Filename$)
Static NbLoadedElements
NbLoadedElements+1
If NbLoadedElements = 1 ; Finished the loading of all images and sounds, we can start the applications
FlipBuffers() ; start the rendering
EndIf
EndProcedure
Procedure LoadingError(Type, Filename$)
Debug Filename$ + ": loading error"
EndProcedure
; Register the loading event before calling any resource load command
BindEvent(#PB_Event_Loading, @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())
BindEvent(#PB_Event_RenderFrame, @RenderFrame())
LoadSprite(0, "Data/Spider.png", #PB_Sprite_PixelCollision)