Interactions et collisions
Pour détecter les collisions en AS 3.0 nous disposons de deux fonctions hitTestPoint() et hitTestObject().
La première peut être précise et détecter la forme de l’objet, alors que la seconde détecte seulement si les bounding box de chaque objet se superposent.
Il existe diverses autres approches que vous trouverez sur les liens qui suivent.
- Corey O’Neil – Collision Detection Kit
- Adventures in ActionScript – Actionscript 3 hitTestObject and Pixel Perfect Collision Detection
- Grant Skinner – Skinner collision detection in AS 3.0
Animation
Code
carre.addEventListener(Event.ENTER_FRAME,detecte_collision); rond.addEventListener(Event.ENTER_FRAME,detecte_collision); function detecte_collision(evt:Event):void { if (evt.target.hitTestPoint(mouseX,mouseY,true)) { sortie.text = "la souris touche " + evt.target.name } if (evt.target.hitTestObject(polygone)) { sortie.text = "le polygone touche " + evt.target.name } } polygone.addEventListener(MouseEvent.MOUSE_DOWN,ajoute_deplace) polygone.addEventListener(MouseEvent.MOUSE_UP,retire_deplace) function ajoute_deplace(evt:MouseEvent):void{ evt.currentTarget.addEventListener(Event.ENTER_FRAME,deplace) } function retire_deplace(evt:MouseEvent):void{ evt.currentTarget.removeEventListener(Event.ENTER_FRAME,deplace) } function deplace(evt:Event):void{ evt.currentTarget.x = mouseX evt.currentTarget.y = mouseY }