1

我正在制作一个 Flash 游戏,自上而下的射击游戏之类的东西,我需要随机放置在舞台上的敌人转向英雄并走向他。这一切都很好,直到我移动英雄,然后敌人无法控制地摇晃,直到我停止移动。我已经简化了代码,如下所示:

stage.addEventListener(Event.ENTER_FRAME, moveMovie);
function moveMovie(event:Event):void{

movie1.x+= 5 * Math.cos(movie1.rotation);
movie1.y+= 5 * Math.sin(movie1.rotation);
movie1.rotation++;
}

我试过旋转然后移动,移动然后旋转,把移动和旋转放到不同的函数中,只有角度太大才旋转,每秒钟左右旋转一次,但仍然存在摆动。我这样做完全错了吗?当我尝试实现这一点时,它似乎很简单。

4

1 回答 1

0

.rotation属性由 表示degreescos和函数都sin接受radians,而不是degrees。试试这样:

movie1.x+= 5 * Math.cos(movie1.rotation * Math.PI/180);
movie1.y+= 5 * Math.sin(movie1.rotation * Math.PI/180);
于 2012-06-25T12:36:42.953 回答