Movieclip没有正确的轨道运行

时间:2014-07-21 09:20:48

标签: actionscript-3 flash actionscript

我现在正在做一个flash动画的学生。我是新手和算法。 我当前项目的问题是我动画的动画片段没有正确轨道运行,我正确地跟踪了视频,月球,地球,太阳的东西都有效。然而,使用这组特定的代码,我申请了我的项目,但似乎中心离我想要的中心很远。

视频链接:http://www.youtube.com/watch?v=HO2YvR1r-Bo

使用计时器而不是ENTER_FRAME

调用底部代码
    function rocketMoving(){
var earthGravityX:Number = earth.x + (earth.width * .5) / 2; 
var earthGravityY:Number = earth.y + (earth.height * .5) / 2;
    sinrocket += .001; 
    cosrocket += .001; 
    rocket.x = Math.sin(sinrocket * orbitSpeed1) * earthOrbitDiameter - earthGravityX ; 
    rocket.y = Math.cos(cosrocket * orbitSpeed1) * earthOrbitDiameter - earthGravityY ;
    rocket.rotation = (Math.atan2(rocket.y-earth.y, rocket.x-earth.x) * 180 / Math.PI);

}

1 个答案:

答案 0 :(得分:0)

听起来您已将注册点设置错误。

在你提到的视频中的3点,他将太阳的注册点设置为左上角。 他还将地球的登记点设置在左上方,并将月球的登记点设置在左上方。

所以请确保它们是相同的。

查看您的代码......

var earthGravityX:Number = earth.x + (earth.width * .5) / 2; 
var earthGravityY:Number = earth.y + (earth.height * .5) / 2;

请注意此处的操作顺序!

认为地球最左边是登记点,地球是100,100,大小是10x10 ......

var earthGravityX:Number = 100 + (10 * .5) / 2;//earth.x + (earth.width * .5) / 2; 
var earthGravityY:Number = 100 + (10 * .5) / 2;//earth.y + (earth.height * .5) / 2;

变成......

var earthGravityX:Number = 100 + 5 / 2;//earth.x + (earth.width * .5) / 2; 
var earthGravityY:Number = 100 + 5 / 2;//earth.y + (earth.height * .5) / 2;

var earthGravityX:Number = 100 + 2.5;//earth.x + (earth.width * .5) / 2; 
var earthGravityY:Number = 100 + 2.5;//earth.y + (earth.height * .5) / 2;

等于102.5。那是偏离中心的。 但是,我无法为您找到正确的操作顺序。将地球的宽度减半并将其添加到X会让你成为中心...但除了2之外是什么?

如果删除该部门会怎样?