dashboard

Advanced game related topics
alokdube
Enthusiast
Enthusiast
Posts: 148
Joined: Fri Nov 02, 2007 10:55 am
Location: India
Contact:

dashboard

Post by alokdube »

if any one is interested here is a simple dashboard meter code (CPU util here)
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()