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ètre | Type | Description |
|---|---|---|
content | str | La chaîne de texte à afficher |
font | str | Nom de l’asset de police (par défaut : police intégrée) |
color | (r, g, b, a) | Couleur de teinte (par défaut : blanc) |
align | str | Alignement 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")
| Valeur | Description |
|---|---|
"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}"