AS3碰撞检测

hitTest 总结
那么在两个不规则的物体间如何检测碰撞?很遗憾,用 hitTest 方法无法实现。
下面总结一下,hitTest 的基本设置:
■ 对于矩形影片,使用 hitTestObject(displayObject)。
■ 对于非常小的影片,使用 hitTestPoint(x, y, true) 注意将 shapeFlag 设置为 (true)。
■ 对于非常不规则的影片图形,如果不要求非常精确或自定义一些解决方法的话,那么也
可以使用 hitTestPoint(x, y, true)。
4、如果对象是圆形的物体,那么使用距离碰撞检测方法将是最好的选择。
5、弹性碰撞:碰到后根据角度算出目标位置

 1 if(dist < minDist) {
 2 var angle:Number = Math.atan2(dy, dx);
 3 var tx:Number = ball0.x + Math.cos(angle) * minDist;
 4 var ty:Number = ball0.y + Math.sin(angle) * minDist;
 5 var ax:Number = (tx - ball1.x) * spring;
 6 var ay:Number = (ty - ball1.y) * spring;
 7 ball0.vx -= ax;
 8 ball0.vy -= ay;
 9 ball1.vx += ax;
10 ball1.vy += ay;
11 }


6、多物体碰撞检测方法

 1 numSprites = 6;
 2 for (i = 0; i < numSprites - 1; i++) {
 3 spriteA = sprites[i];
 4 for (j = i + 1; j < numSprites; j++) {
 5 spriteB = sprites[j];
 6 if (spriteA.hitTestObject(spriteB)) {
 7 // do whatever
 8 }
 9 }
10 }
原文地址:https://www.cnblogs.com/ztdy/p/3630793.html