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 }