pyxen.world.get()
Ein Entity nach seinem Namen abrufen.
world.get(name)
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: die Null-Entität, für die is None und == None gelten und die if als falsch liest. Ein Feld, das auf ihr gesetzt wird, ist eine Warnung in „Probleme“, und das Spiel läuft weiter. Eine zerstörte Entität verliert ihren Namen, also findet get ab diesem Frame nichts mehr.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
name | str | Name des abzurufenden Entity |
Er wird per Position oder per Name übergeben: world.get("player") und world.get(name="player") sind gleich.
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.