AS3碰撞檢測

hitTest 總結
那麼在兩個不規則的物體間如何檢測碰撞?很遺憾,用 hitTest 方法沒法實現。
下面總結一下,hitTest 的基本設置:
■ 對於矩形影片,使用 hitTestObject(displayObject)。
■ 對於很是小的影片,使用 hitTestPoint(x, y, true) 注意將 shapeFlag 設置爲 (true)。
■ 對於很是不規則的影片圖形,若是不要求很是精確或自定義一些解決方法的話,那麼也
可使用 hitTestPoint(x, y, true)。
四、若是對象是圓形的物體,那麼使用距離碰撞檢測方法將是最好的選擇。
五、彈性碰撞:碰到後根據角度算出目標位置spring

 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 }

 


六、多物體碰撞檢測方法spa

 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 }
相關文章
相關標籤/搜索