For more information, check out this website, http://www.mathsisfun.com/geometry/unit-circle.html .
Code: Select all
;PureBasic 5.43 LTS
InitSprite()
OpenWindow(0, 0, 0, 800, 600, "Rotate Sprite Offset", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
CreateSprite(1, 256, 256)
StartDrawing(SpriteOutput(1))
Box(0,0,128,128,$FF0000)
Box(128,0,128,128,$00FF00)
Box(0,128,128,128,$0000FF)
Box(128,128,128,128,$00FFFF)
StopDrawing()
DisplayX.c = 256
DisplayY.c = 160
Offset.c = 150
Angle.c = 0
Repeat
Event = WindowEvent()
ClearScreen(0)
Angle + 2 ;<--Adjusting the angle will adjust the speed
If Angle = 360
Angle = 0
EndIf
;RotateSprite(1, Angle, 0)
DisplaySprite(1, DisplayX + Cos(Radian(Angle)) * Offset, DisplayY + Sin(Radian(Angle)) * Offset)
FlipBuffers()
Until Event = #PB_Event_CloseWindow