2009年4月20日 星期一

重要公式 - 碰撞檢測

距離碰撞檢測:
//從spriteA 和 spriteB開始
//如果使用一個空白影片,或影片沒有半徑(radius)屬性
//可以用寬度與高度除以2

var dx:Number = spriteB.x - spriteA.x;
var dy:Number = spriteB.y - spriteA.y;
var dist:Number = Math.sqrt(dx * dx + dy * dy);
if(dist < spriteA.radius + spriteB.radius)
{
   //處理碰撞
}


多物體碰撞檢測:
var numObjects:uint = 10;
for(var i:uint = 0; i < numObjects - 1; i++)
{
   //使用變量 i 提取引用
   var objectA = objects[i];
   for(var j:uint = i + 1; j < numObjects - 1; j++)
   {
      //使用變量 j 提取引用
      var objectB = objects[j];
      //在 objectA 與 objectB 之間進行碰撞檢測
   }
}



參考書目:Keith Peters.《Function Actionscript 3.0 Animation》.Friends of ED

沒有留言:

張貼留言