Actionscript 3 函数被调用得更快
我做了一个flappy bird游戏,共有2帧。帧Actionscript 3 函数被调用得更快,actionscript-3,flash,Actionscript 3,Flash,我做了一个flappy bird游戏,共有2帧。帧1用于播放,而2用于死亡。我对一个函数进行了跟踪调用,以查看由于某个问题调用了多少次。我发现我死得越多,我的函数调用就越快,重力增加了更多倍,因此,我的角色flappy每次死后下降得更快。请帮助。代码如下: var calls = 0; flappy.addEventListener(Event.ENTER_FRAME, fl_gravity); function fl_gravity(event: Event): void { call
1
用于播放,而2
用于死亡。我对一个函数进行了跟踪
调用,以查看由于某个问题调用了多少次。我发现我死得越多,我的函数调用就越快,重力
增加了更多倍,因此,我的角色flappy
每次死后下降得更快。请帮助。代码如下:
var calls = 0;
flappy.addEventListener(Event.ENTER_FRAME, fl_gravity);
function fl_gravity(event: Event): void {
calls++;
if (dead) {
if (flappy.hitTestObject(ground)) {
gravity = 0;
} else {
gravity += 0.5;
}
upPressed = false;
} else {
flappy.x += 2.5;
}
flappy.y += gravity;
gravity += 0.5;
trace(calls);
}
看起来你在增加鸟的重力,不仅是在它没有死的情况下,而且是在它死的情况下。它位于条件之外。删除在条件之外增加重力的行(该摘录中的第16行)这可能是因为当您死亡并返回到第1帧(代码可能在这里)时,您添加了另一个enterframe侦听器,因此现在您的函数每帧执行两次(每个事件侦听器一次)。确保只添加一次事件侦听器:
var initialized:Boolean;
if(!initialized)
{
initialized = true;
flappy.addEventListener(Event.ENTER_FRAME, fl_gravity);
}