Tutorial:Fonts and Text (Français)

L'ajout et l'utilisation de fontes dans LÖVE n'est pas très compliqué, mais il faut garder à l'esprit qu'il faut définir la fonte avant de l'utiliser. Il n'y pas de moyen de rendre un texte directement depuis un objet Font (fonte), cela doit toujours être fait via la fonction love.graphics.print qui rendra le texte en fonction de la fonte actuelle.

Il existe trois types de fontes dans LÖVE :

  • La fonte par défaut (Bitstream Vera Sans)
  • Tout type de fonte supportée par FreeType 2
  • Une image contenant des glyphes (ImageFont)

Créer un objet Font en utilisant la fonte par défaut

La fonte par défaut est disponible pour tous et n'importe qui et peut être créée en utilisant le code suivant :

font = love.graphics.newFont(14) -- Le nombre précise la taille de la fonte

Créer un objet Fonte en utilisant un ficher de fonte

Les fichiers de tontes sont juste des fichiers normaux, que vous pouvez télécharger par internet (ou créer vous même) contenant les informations des fonte. Elles peuvent être utilisées comme la fonte par défaut, vous n'avez qu'à spécifier le chemin du fichier de fonte, ainsi que la taille de la fonte :

font = love.graphics.newFont("AwesomeFont.ttf", 15)

Il faut garder à l'esprit que certaines fontes téléchargée sont distribuées avec des restrictions sur leurs utilisations et redistributions.

Créer un objet Font en utilisant une image

Une fonte image est un peu plus ardue à expliquer, car il dépend d'une image adaptée spécialement. Si vous regardez cette image d'exemple, vous verrez qu'elle contient des glyphes sur une unique ligne, chacun séparés par une couleur spécifique. Cette couluer est utilisée pour séparer les glyphes et nécessite d'être présente entre chaque caractères et au début de la liste (le pixel le plus à gauche). La création d'une fonte à partir de cette image se déroule comme suit :

font = love.graphics.newImageFont("imagefont.png",
    " abcdefghijklmnopqrstuvwxyz" ..
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ0" ..
    "123456789.,!?-+/():;%&`'*#=[]\"")

Attention : Assurez vous que l'image commence et finit avec la couleur de séparation, autrement le dernier caractère, ici ", ne fonctionnera pas.

Utiliser l'objet Fonte

Maintenant que vous avez créé votre objet Font, vous devez le définir comme fonte actuelle avant qu'elle ne puisse être utilisée. Cela s'effectue avec le code suivant :

-- font = the font object you made before
love.graphics.setFont(font)

Il est également possible d'utiliser immédiatement une fonte TTF en appelant

love.graphics.setNewFont(filename, size)

Ou, dans le cas de la fonte par défaut,

love.graphics.setNewFont(size)

Tracer et formater le texte

Maintenant que vous avez votre magnifique nouvel objet Font, vous voulez l'utiliser. Pour tracer du texte, vous appelez simple la fonction love.graphics.print :

love.graphics.print("Voici un texte incroyable", 100, 100)

Vous pouvez également facilement tracer des nombres :

num = 15
love.graphics.print(num, 100, 150)

La fonction de rendu de texte par défaut gère les retours à la ligne (le caractère '\n') et tracera du texte aligné à gauche :

love.graphics.print("Ceci est la premiere ligne\nCeci est la seconde.\n(et troisieme)\n\ncinquieme", 100, 200)

Les paramètres '100' et '200' sont respectivement les coordonnées x et y du texte. Dans les versions de LÖVE antérieures à 0.6.0, love.graphics.draw était utilisé à la place pour tracer du texte.

LÖVE peut également tracer du texte avec césure de mot et alignement en utilisant la fonction plus complexe love.graphics.printf :

love.graphics.printf("Une très longue phrase qui sera probablement cassée en plusieurs pièces par mon LÖVE.", 500, 100, 250, 'right')

Ici, les paramètres '500' et '100' sont respectivement les coordonnées x et y, '250' est la largeur de texte maximum, et 'right' (gauche en anglais) est le type d'alignement de texte.

De cette façon, il est relativement facile de tracer un texte complétement centré si vous passez la largeur de la fenêtre comme limite de césure de mot et 0 comme coordonnée en x :

love.graphics.printf("Ce texte sera centré peut importe le contexte.\n(et vous l'aimez)", 0, 400, 800, 'center')

Le texte sera toujours aligné à gauche par défaut si vous omettez la valeur d'alignement :

love.graphics.printf("Aligné à gauche, il semble bien.", 100, 500, 150)

Voilà comment tracer du texte. Pour d'avantage d'information à propos des foncions spécifiques et leur utilisations, veuillez consultez la documentation.

Note : Toutes les fonts (même les fontes images) seront affectées par la couleur courante, il n'y a pas besoin de définir le mode de couleur pour les 'moduler'.



Autres langues