Wie begrenze ich die map, sodass man nicht aus dem Bild herauslaufen kann?

1 Antwort

a) Vergleiche die Position des Spielers mit der Position der jeweiligen Seitenkanten/-flächen. Wenn sich dein Spieler sehr schnell bewegt, wäre es besser, seine voraussichtliche Position mit den Begrenzungen zu vergleichen.

b) Im Kapitel collision (Ursina-Dokumentation) findest du mehrere Funktionalitäten, mit denen du prüfen kannst, in welcher Position sich deine Figur relativ zu einer Entität befindet.


Felixmagpizz640 
Beitragsersteller
 02.11.2021, 11:49

wie sehe ich die position der seitenflächen und wie sehe ich die position des spielers

0
regex9  02.11.2021, 22:02
@Felixmagpizz640

Das Spielfeld kannst du mit Entitäten abstecken. Auch dein Spieler sollte eine Entität sein. Jede Entität verfügt über eine Position und wie schon erwähnt, stellt Ursina Funktionen bereit, um die Positionen von Entitäten zueinander zu prüfen.

Schau dir dazu dieses Pong-Beispiel an. Für die linke und rechte Wand werden jeweils Quader angelegt. Vergiss dabei nicht, dass deine Entitäten erst einmal 3D-Objekte im Raum sind, auf die du mit einer Kamera standardmäßig frontal draufschaust (das kannst du auch in diesem Videotutorial sehen, ab 6:45m; in dem Tutorial wird übrigens später ebenso noch einmal gezeigt, wie man eine 2D-Spielfläche abstecken kann).

Für die Spielfeldbegrenzung könntest du ebenso einfach feste Werte setzen und gegen die prüfen. Für die Definition der Grenzen kannst du entweder einzelne Variablen für x, y, z anlegen oder mit den Vec2/Vec3-Typen arbeiten.

Für ein 2D-Spielfeld könnte man ansonsten auch die Kameragrenzen nutzen. Da der Camera-Typ ebenfalls eine Entität ist, verfügt er über Eigenschaften wie bounds.

0