功能被称为更快 [英] Function being called faster
问题描述
1
用于播放,而 2
用于播放。我在函数上放了一个 trace
调用,看看有多少次被调用。我发现死的越多,我的函数调用就越快, gravity
的次数也增加了,所以我的角色 flappy
每次死亡都会更快。请帮助。代码如下: var calls = 0;
flappy.addEventListener(Event.ENTER_FRAME,fl_gravity);
函数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);
死回到帧1(这里代码可能是)你添加另一个框架监听器,所以现在你的函数每帧执行两次(每个事件监听器一次)。确保只添加一次事件侦听器:
var initialized:Boolean;
if(!initialized)
{
initialized = true;
flappy.addEventListener(Event.ENTER_FRAME,fl_gravity);
}
I hava made a flappy bird game and there are 2 frames. frame 1
is for playing while 2
is for death. I put a trace
call on a function to see how many times is it called due to a problem. I found out that the more i die , the speedy my function call gets and the gravity
is increased more times, so, my character flappy
falls faster each time it dies.Please help. Here's the code:
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);
}
It probably happens because when you die and get back to frame 1 (where this code probably is) you add another enterframe listener so now your function is executed twice per frame (one time for each event listener). Make sure you add your event listener only once:
var initialized:Boolean;
if(!initialized)
{
initialized = true;
flappy.addEventListener(Event.ENTER_FRAME, fl_gravity);
}
这篇关于功能被称为更快的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!