Comment puis-je détecter la détection de collision dans flash AS3?
J'ai voulu créer un labyrinthe en flash AS3, avec l'utilisateur de guider le personnage. J'ai essayé d'utiliser ce (ci-dessous), mais cela va m'obliger à faire tout le labyrinthe de murs de la personne et le réglage de la détection de collision pour chacun. Est-il un moyen plus facile d'accomplir la même chose?
monkey.addEventListener( Event.ENTER_FRAME, handleCollision)
function handleCollision( e:Event ):void
{
if(monkey.hitTestObject(wall))
{
trace("HIT");
}
else
{
trace("MISS");
}
}
Vous avez besoin de créer une mosaïque de labyrinthe, et puis faire des détections de collision avec toutes les tuiles de la carte. Regarde dans mosaïque de la détection de collision, vous verrez une augmentation de la performance dans votre labyrinthe.
OriginalL'auteur Avtar Brar | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la Détection de Collision Kit : https://code.google.com/p/collisiondetectionkit/
OriginalL'auteur RafH
Une façon pour vous de le faire, est d'utiliser
hitTestPoint()
méthode pour tester si l'un des coins de l'avoir frappé votre mur.hitTestPoint()
tests un seul emplacement pour voir si ce point entre en collision avec un objet. C'est la façon dont vous pourriez tester le coin en haut à gauche de votre singe pour voir si c'est de toucher le mur :De sorte que vous pourrait faire de même pour tous les coins, ou si vous le souhaitez, vous pouvez déterminer les points de collision vous voulez vérifier le singe.
En fonction de votre niveau de précision, cette méthode pourrait fonctionner tout aussi bien pour vos besoins. Mais si vous voulez pixel perfect collision, vous pouvez consultez ce lien :
http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/
OriginalL'auteur prototypical
Pourquoi serait-ce à dire différents murs?? Avez-vous essayé le dessin de votre labyrinthe de la forme/les murs et les sélectionnant tous en une fois, cliquez-droit pour convertir la sélection en un movieclip donnant nom préféré. Puis aussi lui donner le nom de l'instance "mur". Maintenant, essayez de l'exécuter et de votre
handleCollision
de la fonction de travail.Ou d'essayer de changer de
hitTestObject
àhitTestPoint
dans votre collision vérifier...Aussi lire cet article pour plus de précisions..
http://www.actionscriptmoron.com/AS3Tutorials/hittest-hittestpoint/
OriginalL'auteur VC.One