ACTIONSCRIPT中常用的基本公式(5)

简单缓动: 

sprite.x += (targetX - sprite.x) * easing; 
sprite.y += (targetY - sprite.y) * easing;

简单弹性: 

vx += (targetX - sprite.x) * spring; 
vy += (targetY - sprite.y) * spring; 
sprite.x += (vx *= friction); 
sprite.y += (vy *= friction);

偏移弹性运动: 

var dx:Number = sprite.x - fixedX; 
var dy:Number = sprite.y - fixedY; 
var angle:Number = Math.atan2(dy, dx); 
var targetX:Number = fixedX + Math.cos(angle) * springLength; 
var targetY:Number = fixedX + Math.sin(angle) * springLength;

距离碰撞检测:

// 从 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; j++)
        //使用变量 j 提取引用 
        var objectB = objects[j]; 
        // 在 objectA 与 objectB 之间进行碰撞检测 
    } 
}

原文地址:https://www.cnblogs.com/alexlee85/p/1942011.html