i have an nice slick old aircraft dial on the back, you can pick up any of the 1000s of images on the net, save it as a bmp, and upload the same and adjust the Xcentre and Ycentre of the rotating red dial accordingly
Code: Select all
InitSprite()
OpenWindow(0, 100, 100, 500, 500, "PureBasic - Dashboard")
;UseJPEGImageDecoder()
Global radius=54
Global angle_deg=0
Global angle_radians.f=(angle_deg*3.141593)/180
Global Xcentre=264
Global Ycentre=254
OpenWindowedScreen(WindowID(0), 0,0, 500, 500, 0, 0, 0)
;OpenConsole()
LoadSprite(0,"c:\speedometer1.bmp",0)
CopySprite(0,1,0)
angle_max=135
angle_min=405
Repeat
EventID = WaitWindowEvent()
x=CpuUsage()
angle_deg=angle_max+x*(405-135)/100
angle_radians=(angle_deg * 3.141593)/180
; PrintN("angle:"+Str(angle_deg)+"CPU:"+Str(x))
CopySprite(0,1,0)
StartDrawing(SpriteOutput(1))
Circle(Xcentre,Ycentre,7,RGB($FF,$33,$33))
LineXY (Xcentre,Ycentre ,(Xcentre+5*Cos(angle_radians+3.141593/2)),(Ycentre+5*Sin(angle_radians+3.141593/2)), RGB($FF,$33,$00))
LineXY (Xcentre,Ycentre ,(Xcentre+5*Cos(angle_radians-3.141593/2)),(Ycentre+5*Sin(angle_radians-3.141593/2)), RGB($FF,$33,$00))
LineXY ((Xcentre+radius*Cos(angle_radians)),(Ycentre+radius*Sin(angle_radians)),(Xcentre+5*Cos(angle_radians+3.141593/2)),(Ycentre+5*Sin(angle_radians+3.141593/2)), RGB($FF,$33,$00))
LineXY ((Xcentre+radius*Cos(angle_radians)),(Ycentre+radius*Sin(angle_radians)),(Xcentre+5*Cos(angle_radians-3.141593/2)),(Ycentre+5*Sin(angle_radians-3.141593/2)), RGB($FF,$33,$00))
FillArea(Xcentre+12*Cos(angle_radians), Ycentre+12*Sin(angle_radians), RGB($FF,$33,$00) , RGB($FF,$33,$00))
;Delay(100)
StopDrawing()
FlipBuffers()
DisplaySprite(1,0,0)
;ClearScreen(RGB(0,0,0))
;
;ClearScreen(RGB(0,0,0))
Until EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
;CloseConsole()