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