1

我的主游戏循环有问题。当玩家被摧毁时,我删除了游戏循环的 eventListener。但是,我从collisionCheck 函数中得到一个错误,即术语未定义。即使 collisionCheck 是 gameLoop 的一部分并且 eventListener 已被删除。

if(planeHP <= 0){
    removePlayer();
}

public function removePlayer(){
    removeEventListener(Event.ENTER_FRAME, moveGameObject);
    trace("removed");
}

public function moveGameObject(event:Event){
    collisionCheck();
}

我可以在输出窗口中看到错误之前的“已删除”跟踪。错误总是来自collisionCheck 函数。

谢谢您的帮助。

4

1 回答 1

0

问题是我在 collisionCheck 中有多个循环,并且调用 removePlayer 的循环不是最后一个,因此即使我删除了侦听器,它也会继续。只需在 removePlayer() 之后添加一个 return 即可解决问题。

于 2012-08-13T22:49:55.730 回答