pyxen.world.get()
名前でエンティティを取得します。
world.get(*, name=None)
指定された名前に一致する最初のエンティティを返します。
基本的な使い方
player = world.get(name="player")
"player"という名前のエンティティが存在すれば返されます。
存在しない場合はNoneが返されます。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
name | str | 取得するエンティティの名前 |
パラメータはキーワード専用です。
戻り値
| ケース | 結果 |
|---|---|
| エンティティが見つかった | 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():
- 内部の名前マップを検索
- 最小IDの一致するエンティティを取得
- 軽量な
Entityハンドルを返す - 見つからない場合は
Noneを返す
名前はエンジン側に格納されます。
PythonはEntityデータを保持しません。
重要な注意事項
- 名前はユニークである必要はない
- 検索は決定的
world.all()へのクエリより遅い- シングルトン的なエンティティに最適
使用すべきでない場面
タイトなループ内でのworld.get()の使用は避けてください。
一括操作には以下を使用:
for e in world.all("enemy"):
...
get()の用途:
- 単一のエンティティ
- 既知のユニークなオブジェクト
- 初期化ロジック
まとめ
world.get():
- 名前でエンティティを取得
- 最初の一致を返す(最小ID)
- 見つからない場合は
Noneを返す - 決定的で安全
ECSワールドでの対象を絞った検索のための便利なユーティリティです。