pyxen.Text

비트맵 폰트를 사용하여 Entity에 텍스트 문자열을 렌더링합니다.

텍스트 엔티티는 렌더링에 폰트 아틀라스를 사용합니다 — 각 문자는 아틀라스 텍스처에서 쿼드로 그려집니다.


생성자

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

매개변수

매개변수타입설명
contentstr표시할 텍스트 문자열
fontstr폰트 에셋 이름 (기본값: 내장 폰트)
color(r, g, b, a)틴트 색상 (기본값: 흰색)
alignstr텍스트 정렬: "left", "center" 또는 "right"

content (필수)

렌더링할 텍스트 문자열입니다.

Text("Hello World")

font (선택)

사용할 폰트 에셋의 이름입니다. 생략하면 내장 기본 폰트가 사용됩니다.

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

폰트 에셋은 .font.json 디스크립터와 .font.png 아틀라스 이미지로 구성됩니다.


color (선택)

렌더링된 텍스트에 틴트를 적용합니다.

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

기본값: (1.0, 1.0, 1.0, 1.0) (흰색, 완전 불투명).


align (선택)

엔티티 위치를 기준으로 수평 텍스트 정렬을 제어합니다.

Text("Centered", align="center")
설명
"left"텍스트가 엔티티 위치에서 시작 (기본값)
"center"텍스트가 엔티티 위치를 중심으로 배치
"right"텍스트가 엔티티 위치에서 끝남

텍스트 할당

스폰 시 할당할 수 있습니다:

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

또는 나중에:

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

런타임에 텍스트 업데이트

엔티티를 통해 텍스트 컴포넌트에 접근하여 속성을 업데이트합니다:

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

텍스트 제거

텍스트를 제거하려면 None으로 설정합니다:

label.text = None

예제

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