pyxen.world.get()

名前でエンティティを取得します。

world.get(*, name=None)

指定された名前に一致する最初のエンティティを返します。


基本的な使い方

player = world.get(name="player")

"player"という名前のエンティティが存在すれば返されます。 存在しない場合はNoneが返されます。


パラメータ

パラメータ説明
namestr取得するエンティティの名前

パラメータはキーワード専用です。


戻り値

ケース結果
エンティティが見つかったEntity
一致なしNone

hero = world.spawn(name="player")

found = world.get(name="player")

if found:
    print("Found:", found.name)

決定的な動作

同じ名前のエンティティが複数ある場合:

world.spawn(name="enemy")
world.spawn(name="enemy")

この場合:

enemy = world.get(name="enemy")

最小のエンティティIDインデックスを持つエンティティが返されます。

これにより以下が保証されます:

  • 決定的な動作
  • 実行間で安定した結果
  • 予測可能なゲームプレイロジック

安全な使用パターン

常にNoneをチェックしてください:

player = world.get(name="player")

if player is not None:
    player.x += 10

一般的なユースケース


ユニークなプレイヤーエンティティへのアクセス

player = world.get(name="player")

UI要素へのアクセス

score_label = world.get(name="score_label")

シングルトンエンティティパターン

camera = world.get(name="camera")

エンティティの命名

名前を設定または変更できます:

e.name = "boss"

または生成時に:

world.spawn(name="boss")

参照:pyxen.Entity


内部動作

world.get()

  1. 内部の名前マップを検索
  2. 最小IDの一致するエンティティを取得
  3. 軽量なEntityハンドルを返す
  4. 見つからない場合はNoneを返す

名前はエンジン側に格納されます。

PythonはEntityデータを保持しません。


重要な注意事項

  • 名前はユニークである必要はない
  • 検索は決定的
  • world.all()へのクエリより遅い
  • シングルトン的なエンティティに最適

使用すべきでない場面

タイトなループ内でのworld.get()の使用は避けてください。

一括操作には以下を使用:

for e in world.all("enemy"):
    ...

get()の用途:

  • 単一のエンティティ
  • 既知のユニークなオブジェクト
  • 初期化ロジック

まとめ

world.get()

  • 名前でエンティティを取得
  • 最初の一致を返す(最小ID)
  • 見つからない場合はNoneを返す
  • 決定的で安全

ECSワールドでの対象を絞った検索のための便利なユーティリティです。