我正在尝试为一些与中心点相关的位图制作动画。它们并非都从那个中心点开始,但我希望它们飞出,就好像来自那个中心点的力猛烈撞击它们并将它们径向向外推,这样它们就完全飞离了舞台。
所以:我知道中心点,以及围绕它排列的每个位图的 x 和 y 位置。对于每一个,我可以从中心画一条线到那个 x,y 点。然后我应该能够得到该线与水平线形成的角度,然后在该线上设置一个更远的目标点。位图将被补间到该点。我相信这就是 Math.atan2 的用途。
这是我在遍历位图数组时得到的(我是一个对象):
var angle:Number = Math.atan2(i.bitmap.y - centerY, i.bitmap.x - centerX) * 180 / Math.PI;
var dist:Number = 200; //arbitrary number, just to test
destX = centerX + dist * Math.cos(angle); //destination x
destY = centerY + dist * Math.sin(angle); //destination y
这些东西不是径向滑出,而是四处跳跃。
我无法理解 atan2 以及我做错了什么。
谢谢,
大卫