我正在编码一个闪光灯游戏,在其中球击中一个电影剪辑对象,这将用户带到一个新的场景。
这很好,但当我回到游戏现场时,球的移动速度是原来的两倍。
返回游戏时,如何/在哪里重置变量。请看下面我是如何设置变量的。
var XSpeed:Number = 9;
var YSpeed:Number = 9;任何帮助都将不胜感激。谢谢。
EDIT****************************************
好的,我想我把这个问题说得很糟糕,这是我的相关代码:
var XSpeed:Number = 9; //X Speed of the Ball
var YSpeed:Number = 9; //Y Speed of the Ball
function beginCode():void{
mcPaddle.addEventListener(Event.ENTER_FRAME, movePaddle);
mcBall.addEventListener(Event.ENTER_FRAME, moveBall);
mcBall.addEventListener(Event.ENTER_FRAME, changeFrame);
}然后在末尾调用beginCode()。如前所述,我认为问题在于事件侦听器已经存在,每次用户返回页面时都会再次调用事件侦听器。我尝试添加一个if语句来检查(请参阅下面的注释),但这没有起作用.
任何帮助都将不胜感激。谢谢。
发布于 2013-01-18 01:31:01
嗯,这完全取决于你的游戏是怎么写的,以及你期望它如何工作。
对于您的特定问题,它就像执行这个when the ball hits a movie clip一样简单
XSpeed = 9;
YSpeed = 9;发布于 2013-01-18 01:32:52
听起来像this question。问题是,当游戏重新启动时,事件侦听器再次被添加,使游戏循环触发的频率增加了一倍(一切发生的速度都是原来的两倍)。
您需要在游戏结束时删除侦听器,或者添加检查以确保只添加一次。
https://stackoverflow.com/questions/14391111
复制相似问题