Actionscript 3 作为3级游戏,关卡为电影唇?

Actionscript 3 作为3级游戏,关卡为电影唇?,actionscript-3,Actionscript 3,我正在做一个游戏,每个关卡都包含在一个精灵中。当我退出关卡时,精灵将从舞台上移除并设置为空。问题是sprite中的所有变量和事件侦听器都保持不变。有没有比找到并禁用所有游戏机制更简单的解决方案?我有一个非常类似的方法。我不知道这对你是否有用,但我大致是这么做的。老实说,你的问题有点含糊,但我要试一试 (对于任何可能的评论员,是的,我的时间线上有代码,我知道很多人认为这是一个“坏的实践”。相信我,这个方案对我的项目来说是不可行的。但是,从技术上讲,我可以用文档类来做类似的事情,我想。): -- 一

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

我有一个非常类似的方法。我不知道这对你是否有用,但我大致是这么做的。老实说,你的问题有点含糊,但我要试一试

(对于任何可能的评论员,是的,我的时间线上有代码,我知道很多人认为这是一个“坏的实践”。相信我,这个方案对我的项目来说是不可行的。但是,从技术上讲,我可以用文档类来做类似的事情,我想。):

--

一、 同样,将每个“关卡”(实际上,对我来说,每个探索地点)放在一个单独的电影剪辑中。显然,每部电影都有自己的代码。但是,变量和事件侦听器是在“startClip()”函数中初始化的。然后,在“stopClip()”函数中完成清理任务(例如删除事件侦听器和变量)

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

这种方法的另一个优点是,我可以在舞台上为通用GUI元素添加一个MovieClip,因此当我切换“级别”时,通用GUI不会被触动

我相信还有其他方法可以完成同样的事情,但这就是我所做的,而且对我来说很有效

还有一个提示:如果将大部分(如果不是全部)常见任务放在Stage、document类中,或者必要时放在一个或两个自定义类中,那么您将减少需要删除哪些变量和事件侦听器。实际上,我有很多自定义类,因此,每个MovieClip中大约90%的代码只是调用这些类中的函数和变量

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


希望这有帮助

DocumentClass和OOP是唯一干净的方法。框架脚本不仅仅是一个糟糕的实践,它是as2的遗留问题。话虽如此,我总是说“只要有效,谁在乎”。但是,既然你有一个半面向对象的方法(使用一些类),我不明白为什么不从一开始就让它成为propper。而且我从来没有见过一个项目是不“可行的”做它的正确方式!只是说;)嘿,总有第一次。问题是我的项目太多了。仅游戏核心就有近10000行代码,时间线中还有几十万行代码,以及数千种独特的交互元素。此外,事实上,我的90%(难以置信的复杂)动画元素来自我的非程序员图形设计师,所以我不可能通过代码来创建这些东西。因此,我必须在时间轴上编写脚本。如果我采取将所有内容都放在document类中的方法,就不可能从数百万代码中找到一行。顺便说一句,请注意“唯一”、“始终”和“从不”之类的短语。它们很少适用于任何项目。如果是的话,我们现在已经实现了模块化的“乐高”编程。呵呵。。这一定是我在15年的游戏开发中听到的最疯狂的事情之一。对于一个游戏核心来说,10万条线并不是什么特别的东西,但是10万条线散布在时间线上,这纯粹是吓人的。特别是为了一场比赛。可怜的程序员进入团队的时候已经进入了高级阶段。我的意思是OOP的全部要点是保持项目模块化、易于维护、易于扩展,并且通常更好地管理。我建议看看一些复杂的编程模式,比如MVC,它会让每个人参与如此大规模的项目变得更加容易。使用SVN也是如此,这在框架脚本中是不可能的。我认为源代码不会被正确记录,因为这也不起作用。哦,每个人都从非编码设计师那里得到他们的动画。没有人对你说任何反对的话;动画开始时的命令,仅此而已。Sry伙计,我相信你打了一场恶作剧,你是一个很棒的人,我不想挑起争论。