我在简单的打砖块游戏中更新桨位置时遇到问题,我正在使用以下侦听器做出反应:
paddle.addEventListener(Event.ENTER_FRAME, movePaddle)
当movePaddle()
函数在Main
一切中定义时工作得很好,但是当我重构代码并将movePaddle()
函数放入Paddle
类并将侦听器更改为:
paddle.addEventListener(Event.ENTER_FRAME, paddle.movePaddle)
结果是桨叶在所需的每一帧和其他一些值之间改变位置
下面的movePaddle()
函数:
public function movePaddle(event:Event):void
{
// DEBUG
trace(this.x);
trace(this.y);
this.x = mouseX - this.width / 2;
if(mouseX < this.width / 2)
{
this.x = 0;
}
// To much to right
if(this.x >= stage.stageWidth - this.width)
{
// To much to left
this.x = stage.stageWidth - this.width;
}
}
第二个问题:ENTER_FRAME
就游戏优化而言,使用事件是否有效?