Le principe est pourtant relativement simple , si tu veut faire du jeu , c'est une technique que tu te dois de maitrisé.
Je vais donc tenté de t'aider.
Flaith t'a parlé de Fonte bitmap , il sagit en fait de fichier image contenant les formes des lettres , tu trouvera un package intéressant
ICI
on va prendre cette image en exemple :
Évidement , il manque des lettres... , pour ton cas , il est important que la fonte a une largeur fixe , sinon ton code va être plus complexe.
Tout d'abord il faut que tu charges cette image en sprite via LoadSprite() , l'image plus haut va être la référence :
REFERENCE = LoadSprite(#pb_any,"Image.png")
On part du principe que notre image de référence fait 128x128 , chaque lettre fait donc 64px de coté.
PureBasic intègre depuis peu les MAP , ca va être utile pour nous.
ex :
NewMap MaPolice.i()
en conjonction avec la fonction clipsprite :
MaPolice("A") = ClipSprite(REFERENCE,0,0,64,64)
MaPolice("D") = ClipSprite(REFERENCE,64,64,64,64)
MaPolice("C") = ClipSprite(REFERENCE,0,64,64,64)
etc...
ClipSprite(REFERENCE <-- Sprite sur lequel on découpe
,0,0, <-- Position du début du découpage
64,64) <-- Taille du découpage
MaPolice("A") Contient donc l'identifiant du sprite découpé qui forme la lettre A , etc...
L'affichage d'un message en 100,100:
Texte$ = "DBCAaA" ; Y a un piège

PositionX = 100
PositionY = 100
for i = 1 to len(Text$)
Lettre$ = ucase(mid(Text$,i,1)) ; on extrait la lettre via mid() & on convertit en grand caractère via ucase() pour ne pas avoir de bug avec la lettre 'a' ( pas pareil que 'A' )
DisplaySprite( MaPolice( Lettre$ ) , PositionX, PositionY ) ; on affiche grace à notre MAP !!
PositionX+64 ; on décale les caractères de 64px
next
Simple non ?