pyxen.world.get()
Ein Entity nach seinem Namen abrufen.
world.get(*, name=None)
Gibt das erste Entity zurück, das dem gegebenen Namen entspricht.
Grundlegende Verwendung
player = world.get(name="player")
Wenn ein Entity namens "player" existiert, wird es zurückgegeben.
Wenn nicht, wird None zurückgegeben.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
name | str | Name des abzurufenden Entity |
Der Parameter ist Keyword-only.
Rückgabewert
| Fall | Ergebnis |
|---|---|
| Entity gefunden | Entity |
| Kein Treffer | None |
Beispiel
hero = world.spawn(name="player")
found = world.get(name="player")
if found:
print("Gefunden:", found.name)
Deterministisches Verhalten
Wenn mehrere Entities denselben Namen haben:
world.spawn(name="enemy")
world.spawn(name="enemy")
Dann:
enemy = world.get(name="enemy")
Gibt das Entity mit dem niedrigsten Entity-ID-Index zurück.
Das garantiert:
- Deterministisches Verhalten
- Stabile Ergebnisse über Durchläufe hinweg
- Vorhersagbare Spiellogik
Sicheres Verwendungsmuster
Prüfe immer auf None:
player = world.get(name="player")
if player is not None:
player.x += 10
Häufige Anwendungsfälle
Auf ein eindeutiges Spieler-Entity zugreifen
player = world.get(name="player")
Auf ein UI-Element zugreifen
score_label = world.get(name="score_label")
Singleton-Entity-Muster
camera = world.get(name="camera")
Entities benennen
Du kannst einen Namen setzen oder ändern:
e.name = "boss"
Oder beim Spawn:
world.spawn(name="boss")
Siehe: pyxen.Entity
Interna
world.get():
- Durchsucht die interne Namens-Map
- Ruft das Entity mit der niedrigsten ID ab
- Gibt einen leichtgewichtigen
Entity-Handle zurück - Gibt
Nonezurück, wenn nichts gefunden wird
Namen werden engine-seitig gespeichert.
Python speichert keine Entity-Daten.
Wichtige Hinweise
- Namen müssen nicht eindeutig sein
- Die Suche ist deterministisch
- Langsamer als eine Abfrage mit world.all()
- Ideal für Singleton-artige Entities
Wann man es nicht verwenden sollte
Vermeide world.get() in engen Schleifen.
Für Massenoperationen bevorzuge:
for e in world.all("enemy"):
...
Verwende get() für:
- Einzelne Entities
- Bekannte eindeutige Objekte
- Initialisierungslogik
Zusammenfassung
world.get():
- Ruft Entities nach Name ab
- Gibt den ersten Treffer zurück (niedrigste ID)
- Gibt
Nonezurück, wenn nicht gefunden - Deterministisch und sicher
Es ist eine Komfortfunktion für gezielte Suchen in einer ECS-Welt.