pyxen.Text
비트맵 폰트를 사용하여 Entity에 텍스트 문자열을 렌더링합니다.
텍스트 엔티티는 렌더링에 폰트 아틀라스를 사용합니다 — 각 문자는 아틀라스 텍스처에서 쿼드로 그려집니다.
생성자
Text(
content,
*,
font="_default",
color=None,
align="left"
)
매개변수
| 매개변수 | 타입 | 설명 |
|---|---|---|
content | str | 표시할 텍스트 문자열 |
font | str | 폰트 에셋 이름 (기본값: 내장 폰트) |
color | (r, g, b, a) | 틴트 색상 (기본값: 흰색) |
align | str | 텍스트 정렬: "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}"