试图通过point.x / .y小于1移动

时间:2010-12-14 02:43:17

标签: actionscript-3 floating-point flash-cs4

我正在尝试从一个计算角度的方法返回一个点作为向量。

然后我添加这些点x& y到我的播放器对象(来自示例代码)的x和y数字 - 这些是数字,而不是点。在其他地方,我看到数字被定义为浮点数,所以我不认为这是一个问题。

当我将distvar和distvar2乘以* 2时,我的对象移动,我能说出最好的因为这些值,以前是.59~& -8~,大于1(绝对值)。

任何提示?我应该在我的播放器对象上使用Point变量吗?还有什么我必须做的从point.x / y转换为Number吗?闪光灯的新手,感谢您的帮助。

谢谢!

public function GetAngle(initialp:Point,secondp:Point):Point{
    distvar = ((initialp.x - secondp.x) * (initialp.x - secondp.x));
    distvar2 = ((initialp.y - secondp.y) * (initialp.y - secondp.y));

 //Emergency guard clause against dividing by 0
    if (distvar + distvar2 == 0){
        distvar = 1;
        distvar2 = 1;
    }
    veldistance = Math.sqrt((distvar+distvar2));

distvar = ((Math.abs(initialp.x-secondp.x))/veldistance);
distvar2 = ((Math.abs(initialp.y-secondp.y))/veldistance);

if (secondp.x < initialp.x){
    distvar = -distvar;
}
if (secondp.y < initialp.y){
    distvar2 = -distvar2;
}

apoint.x = distvar;
apoint.y = distvar2;

return apoint;

1 个答案:

答案 0 :(得分:2)

point.x / y的值是数字。你将point.x / y添加到object.x / y的方式应该没问题。我怀疑代码还有其他问题,但是如果没有更多的代码,我不确定是什么。首先,我看不到 apoint 的创建位置。