AS3游戏的级别为动画片段?

时间:2013-05-25 16:43:56

标签: actionscript-3

我正在制作游戏,每个级别都包含在一个精灵中。当我退出一个级别时,精灵将从舞台中删除并设置为null。问题是精灵中的所有变量和事件监听器都保持不变。有没有比找到和禁用每个游戏机制更简单的解决方案?

1 个答案:

答案 0 :(得分:1)

我的方法非常相似。我不知道它是否会对你有用,但是我或多或少会这样做。说实话,你的问题有点模糊,但我会对它进行抨击。

(对于任何可能的评论员,是的,我的时间轴上都有代码,而且我知道很多人会考虑这种情况"糟糕的做法"。相信我,替代方案对我的项目来说是不可行的。但是从技术上讲,一个可以使用文档类对我做类似的事情,我想。):

-

我也有每个"等级" (实际上,对我来说,每个探索位置)都在一个单独的MovieClip中。显然,每个MovieClip都有自己的代码。但是,变量和事件监听器是在" startClip()"中初始化的。功能。然后,清理任务(例如删除事件监听器和变量)在" stopClip()"功能

通过创建MovieClip,然后在MovieClip上调用startClip(),将这些级别放置在舞台上。当我想切换到另一个级别时,我调用stopClip(),然后删除MovieClip。

这种方法的另一个优点是我可以在舞台上为公共GUI元素添加一个额外的MovieClip,所以当我切换" level"时,常见的GUI不受影响。

我确定还有其他方法可以完成同样的事情,但这就是我所做的,而且对我有用。

还有一个提示:如果将大部分(如果不是全部)常见任务放在舞台上,文档类中,并且如果需要,在自定义内部,您将减少需要删除的变量和事件侦听器一两节。我实际上有很多自定义类,因此,每个MovieClip中大约90%的代码只是调用这些类中的函数和变量。

对我来说,这些自定义类控制(除其他外)评分,声音播放,随机化任务,常见阵列任务以及保存播放器进度。

希望这有帮助!