Wie kann ich erkennen, collision detection in flash AS3?
Ich wollte ein Labyrinth erstellen, in flash AS3, mit der Benutzer die Führung der Charakter. Ich habe versucht, mit dieser (unten), aber dies wird von mir verlangen, alle, die die Labyrinth-Wände individuell und Einstellung der Kollisionserkennung. Gibt es einen einfacheren Weg das zu bewerkstelligen?
monkey.addEventListener( Event.ENTER_FRAME, handleCollision)
function handleCollision( e:Event ):void
{
if(monkey.hitTestObject(wall))
{
trace("HIT");
}
else
{
trace("MISS");
}
}
Sie müssen erstellen Sie eine Kachel-basierte Labyrinth, und dann tun Kollision Erkennungen mit all den Kacheln in der Karte. Blick nach oben in tile-based collision detection, sehen Sie eine Erhöhung der Leistung in Ihrem Labyrinth.
InformationsquelleAutor Avtar Brar | 2013-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Collision Detection Kit : https://code.google.com/p/collisiondetectionkit/
InformationsquelleAutor RafH
Eine Möglichkeit, Sie könnten dies tun, ist die Verwendung
hitTestPoint()
- Methode zu testen, wenn eine der Ecken haben, schlagen Ihre Wand.hitTestPoint()
tests nur zu einem einzigen Ort zu sehen, wenn dieser Punkt mit einem Objekt kollidiert. Diese ist, wie könnte man den test der oberen linken Ecke, Ihren Affen zu sehen, ob es die Berührung der Wand :So dass Sie könnte das gleiche für alle vier Ecken, oder wenn Sie möchten, können Sie bestimmen, zu einer Kollision Punkte, die Sie überprüfen möchten für die Affen.
Abhängig von Ihrem Niveau der Präzision, diese Methode könnte funktionieren Prima für Ihre Bedürfnisse. Aber wenn Sie wollen, pixelgenaue Kollision, können Sie aus diesem link :
http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/
InformationsquelleAutor prototypical
Warum würde es bedeuten, dass einzelne Wände?? Haben Sie versucht, die Zeichnung des Labyrinths Form/Wände und wählen Sie alle auf einmal, mit der rechten Maustaste auf Auswahl konvertieren in einen movieclip zu geben bevorzugten Namen. Dann geben auch Instanz-name "wall" ein. Versuchen Sie nun, um Sie auszuführen und Ihre
handleCollision
Funktion sollte funktionieren.Oder versuchen Sie, aus
hitTestObject
zuhitTestPoint
in Ihrem Kollisionsprüfung...Überprüfen Sie auch diesen Artikel für mehr Klarheit..
http://www.actionscriptmoron.com/AS3Tutorials/hittest-hittestpoint/
InformationsquelleAutor VC.One