pyxen.Text

Renderiza una cadena de texto en una Entity usando una fuente de mapa de bits.

Las entidades de texto usan un atlas de fuente para el renderizado — cada carácter se dibuja como un quad desde la textura del atlas.


Constructor

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

Parámetros

ParámetroTipoDescripción
contentstrLa cadena de texto a mostrar
fontstrNombre del recurso de fuente (por defecto: fuente integrada)
color(r, g, b, a)Color de tinte (por defecto: blanco)
alignstrAlineación del texto: "left", "center" o "right"

content (Requerido)

La cadena de texto a renderizar.

Text("Hello World")

font (Opcional)

Nombre del recurso de fuente a usar. Si se omite, se usa la fuente integrada por defecto.

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

Un recurso de fuente consiste en un descriptor .font.json y una imagen de atlas .font.png.


color (Opcional)

Tiñe el texto renderizado.

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

Por defecto: (1.0, 1.0, 1.0, 1.0) (blanco, completamente opaco).


align (Opcional)

Controla la alineación horizontal del texto relativa a la posición de la entidad.

Text("Centered", align="center")
ValorDescripción
"left"El texto comienza en la posición de la entidad (por defecto)
"center"El texto se centra en la posición de la entidad
"right"El texto termina en la posición de la entidad

Asignar Text

Puedes asignarlo durante el spawn:

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

O después:

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

Actualizar Text en tiempo de ejecución

Accede al componente de texto a través de la entidad para actualizar propiedades:

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

Eliminar Text

Asigna None al texto para eliminarlo:

label.text = None

Ejemplo

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}"