| font - handle of a font returned by LoadFont or LoadFontSheet |
|
Makes a loaded font the one that text commands use from now on. Loading a font does nothing on its own; this is the switch that puts it into service. After the call, Text, Print and Write all draw with it, and the measuring commands FontWidth, FontHeight, StringWidth and StringHeight all report against it. Switching is cheap, so treating it as a mode is the normal pattern: SetFont big before the title, SetFont small before the HUD, and back again. Just remember it is a global setting - whatever you selected last is still in force when you get to some other part of your code, which is why stray text often turns up in the wrong size. The layout numbers change with the font, so measure after you switch, not before. Your program starts with a built-in default font, so text works before you have loaded anything. If you free the current font with FreeFont, the default is selected again automatically rather than leaving you with a dangling handle - but any other stale handle passed to SetFont is still an error. See also: LoadFont, FreeFont, Text, FontHeight, StringWidth. |
; SetFont Example
; ---------------
Graphics 640,480,0,2
SetBuffer BackBuffer()
; Two menu fonts plus a small one for the info overlay
menu_font=LoadFont("Arial",24)
pick_font=LoadFont("Arial",32,True,True)
info_font=LoadFont("Arial",14)
; A little game menu
Dim item$(3)
item$(0)="Start Game"
item$(1)="Options"
item$(2)="High Scores"
item$(3)="Quit"
choice=0
While Not KeyDown(1)
; Up/Down move the highlight
If KeyHit(200) And choice>0 Then choice=choice-1
If KeyHit(208) And choice<3 Then choice=choice+1
Cls
For i=0 To 3
; SetFont picks the font that all following Text commands use:
; the highlighted item gets the big bold italic font
If i=choice Then
SetFont pick_font
Color 255,220,80
Else
SetFont menu_font
Color 160,160,160
End If
Text 320,140+i*60,item$(i),True,True
Next
; Switch to the small font for the overlay
SetFont info_font
Color 255,255,255
Text 0,0,"Up/Down: move highlight Esc: exit"
Text 0,20,"SetFont swaps fonts freely between Text calls"
Flip
Wend
End