Libgdx Kollisionserkennung mit TiledMap
Ich habe Mühe mit der Umsetzung einer collision detection-system, durch die tiledmap. Ich habe ein 2d - "pokemon-Stil" - Spiel, das eine gekachelte Karten gerendert. Speziell, ich habe eine 'Kollision' Schicht in meinem gefliesten Karte .tmx-Datei, die ich will, zu interagieren mit dem Spieler und anderen Einrichtungen. Meine Frage ist, wie Verbinde ich den player sprite (extends Sprite-Klasse), um die "Kollision" Schicht der tiledmap und verursachen Kollision zwischen den beiden. Jede Beratung wird geschätzt.
InformationsquelleAutor bhafenri | 2013-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst Ihren
Player
sollte wohl nichtextend Sprite
, weil Ihre Spieler in der Regel viel mehr als einSprite
. Es besteht wahrscheinlich aus mehreren sprites oder sogarAnimations
. Halten Sie ein sprite als eine Eigenschaft der Spieler.Die Frage selbst wurde bereits angesprochen, mehrmals. In der Regel müssen Sie die folgenden Schritte aus:
In code sieht ein bisschen aus wie diese:
Einige weitere links die Sie interessieren könnten:
Wenn Sie schreibt: "ich habe eine 'Kollision' Schicht" bin ich davon ausgegangen, dass Sie verwendet ein Objekt layer Gekachelt. Sie sollten wahrscheinlich nicht tun, denn es ist wirklich sehr angenehm zu modellieren, Ihre Kollisionen und auch einfach, um es in den code. Mit Ihrem Ansatz, den Sie haben würde, um zu Durchlaufen und Ihre Fliesen statt die Objekte und erstellen Sie ein Rechteck sich für alle Steine in der Ebene der Kollision. Ich noch empfehlen Ihnen die Nutzung der Objekt-Ebene statt.
Tun, danke für die Hilfe! Endlich kapiert.
lässt es sich nicht nehmen zu viel Ressourcen, wenn wir überprüfen
overlaps
für jedes Rechteck-jedes frame? Ich habe gesehen, dass ein Weg mit einer Reihe von 1 oder 0 zu erkennen ist, wenn die Fliese ist begehbar ist oder nicht. Haben Sie erlebt einige Probleme (auf mobile zum Beispiel) mit den überschneidungen Methode auf viele Objekte?Ich denke einfach bounding box Kollision überprüft werden nichts zu befürchten, selbst auf mobilen Geräten und mit vielen Rechtecken. Könnte man es optimieren, aber Sie sollten Sie nicht pre-Optimierung, solange Sie nicht in Probleme ausgeführt und die profilierte, Woher Sie kommen.
InformationsquelleAutor noone