pyxen.Text

Affiche une chaîne de texte sur une Entity en utilisant une police bitmap.

Les entités texte utilisent un atlas de police pour le rendu — chaque caractère est dessiné comme un quad à partir de la texture de l’atlas.


Constructeur

Text(
    content,
    *,
    font="_default",
    color=None,
    align="left"
)

Paramètres

ParamètreTypeDescription
contentstrLa chaîne de texte à afficher
fontstrNom de l’asset de police (par défaut : police intégrée)
color(r, g, b, a)Couleur de teinte (par défaut : blanc)
alignstrAlignement du texte : "left", "center" ou "right"

content (Requis)

La chaîne de texte à afficher.

Text("Hello World")

font (Optionnel)

Nom de l’asset de police à utiliser. S’il est omis, la police intégrée par défaut est utilisée.

Text("Score: 0", font="myfont")

Un asset de police se compose d’un descripteur .font.json et d’une image atlas .font.png.


color (Optionnel)

Teinte le texte rendu.

Text("Warning!", color=(1, 0, 0, 1))

Par défaut : (1.0, 1.0, 1.0, 1.0) (blanc, entièrement opaque).


align (Optionnel)

Contrôle l’alignement horizontal du texte par rapport à la position de l’entité.

Text("Centered", align="center")
ValeurDescription
"left"Le texte commence à la position de l’entité (par défaut)
"center"Le texte est centré sur la position de l’entité
"right"Le texte se termine à la position de l’entité

Assigner du texte

Vous pouvez l’assigner lors du spawn :

label = world.spawn(
    text=Text("Score: 0"),
    x=10, y=10, layer=200
)

Ou plus tard :

label.text = Text("Game Over", color=(1, 0, 0, 1))

Mettre à jour le texte en cours de jeu

Accédez au composant texte via l’entité pour modifier ses propriétés :

label.text.content = "Score: 100"
label.text.color = (1, 1, 0, 1)
label.text.align = "center"

Supprimer le texte

Assignez None au texte pour le supprimer :

label.text = None

Exemple

from pyxen import *

score = 0

label = world.spawn(
    text=Text("Score: 0", color=(1, 1, 1, 1)),
    x=10, y=10, layer=200
)

def update():
    global score
    score += 1
    label.text.content = f"Score: {score}"