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

ParameterTypBeschreibung
namestrName des abzurufenden Entity

Er wird per Position oder per Name übergeben: world.get("player") und world.get(name="player") sind gleich.


Rückgabewert

FallErgebnis
Entity gefundenEntity
Kein TrefferNone

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():

  1. Durchsucht die interne Namens-Map
  2. Ruft das Entity mit der niedrigsten ID ab
  3. Gibt einen leichtgewichtigen Entity-Handle zurück
  4. Gibt None zurü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 None zurück, wenn nicht gefunden
  • Deterministisch und sicher

Es ist eine Komfortfunktion für gezielte Suchen in einer ECS-Welt.