Do you want to have the scores on the same screen (render) ? 1st at the top, below it the 2nd, below it the 3rd, like this :
|1st DriverName 00m00s|
|2nd DriverName 00m00s|
|3rd DriverName 00m00s|
if yes, you could use images that your program remake (following a procedure which considers the drivername, his position at the end of the race, his time)
then draw one image below another. (use the pixels height to know where to draw)
example :
Graphics(640,480,32,2)
Global TitleStatsImage
Dim DriverStatsImage(10)
;before the race :
;create the TitleStats image
TitleStatsImage = CreateImage(500,1+16+1) ;assuming we use a font with a height of 16
;create each DriverStats image
For I% = 1 To 10 Step 1
DriverStatsImage(I) = CreateImage(500,1+16+1)
Next
;after the race :
;remake the TitleStats image :
SetBuffer(ImageBuffer(TitleStatsImage))
Color(125,125,125) : Rect(0,0,500,1+16+1,True)
TStr$ = "Drivers stats for this race : " : PX% = 500/2-StringWidth(TStr)/2 : PY% = 1
Color(255,255,255) : CText(TStr,PX,PY)
;remake each DriverStats image :
For I% = 1 To 10 Step 1
SetBuffer(ImageBuffer(DriverStatsImage(I)))
ClsColor(Rand(025,125),Rand(025,125),Rand(025,125)) : Cls()
TStr$ = Str(00)+" "+"XName"+" "+"00m00s" : PX% = ImageWidth(DriverStatsImage(I))/2-StringWidth(TStr)/2 : PY% = 1
Color(255,255,255) : CText(TStr,PX,PY)
Next
SetBuffer(BackBuffer())
;draw the TitleStats image
DrawImage(TitleStatsImage,GraphicsWidth()/2-ImageWidth(TitleStatsImage)/2,3)
;draw each DriverStats image, one below the other
For I% = 1 To 10 Step 1
DrawImage(DriverStatsImage(I), GraphicsWidth()/2-ImageWidth(DriverStatsImage(I))/2, 3+1+16+1+3+((I-1)*(3+1+16+1)) )
Next
Flip()
WaitKey()
End()
Function CText(XStr$,PX%,PY%)
Text(PX,PY,XStr,False,False)
End Function
Of course you can improve the drawing of images procedure until it is centered horizontaly and verticaly... And you can order the drawing by position or by time... It depends on what you want... try it, tweak it !
(this code example uses dim arrays, but you can use a custom type...)