我正在制作一个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++;
}
我尝试过旋转,然后移动,移动然后旋转,将移动和旋转放入不同的功能,只有在角度太大时才旋转,只是每秒旋转一次,但仍然存在抖动。我这样做完全错了吗?当我试图实现它时,它似乎很简单。
答案 0 :(得分:0)
.rotation
属性由degrees
表示。 cos
和sin
函数都接受radians
,而不是degrees
。试试这样:
movie1.x+= 5 * Math.cos(movie1.rotation * Math.PI/180);
movie1.y+= 5 * Math.sin(movie1.rotation * Math.PI/180);