ACTIONSCRIPT中常用的基本公式(5)
2011-01-22 15:18 AlexLee85 阅读(209) 评论(0) 收藏 举报简单缓动:
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 之间进行碰撞检测
}
}
浙公网安备 33010602011771号