0

我做了一个“小行星”副本,效果很好!我用不同的模块(敌人、控件和背景)制作了它。现在我也做了一个起始画面,玩家可以在里面选择玩游戏,查看高分等。

问题是我不知道如何将它实现到故事板中。我可能误解了模块的使用。

我从 Scene1 开始,这是开始游戏的介绍 + 按钮。接下来,我想移动到场景 2(当玩家按下开始按钮时),这似乎没问题,场景 1 被清除。但是当我死了,我想再次移动到场景1。问题是一些听众没有被移除,并且在场景切换后不久游戏就崩溃了。我想主要的问题是,在我的场景 2 中,我在我的场景中放入了 require("background")、敌人和控件,我不知道在应该清除它们时如何删除它们。

我已经输入了所有模块并将它们放在在退出场景中被清除的同一组中,但并非所有内容都被删除。

你认为我会如何解决这个最简单的方法?我对 Corona 很陌生,仍处于早期学习阶段。

4

2 回答 2

1

显示对象,如在 createScene() 函数中创建并添加到“组”显示组的 display.newImageRect() 和 display.newText() 将在清除场景时自动删除。

任何具有 onComplete 处理程序的计时器、转换或 audio.plays,以及附加到运行时的网络请求和任何事件处理程序都必须手动删除。如果您正在创建的各种对象正在执行这些操作,则它们的删除功能应该撤消这些操作,以便删除它们将清理它们。

我发现最好在 enterScene() 中添加运行时处理程序、计时器等,并确保在 exitScene() 中撤消它们。然后,如果它在 createScene() 中完成,则应在 destoryScene() 中进行清理。

于 2012-12-24T03:18:01.890 回答
-1

不推荐使用模块开始。

其次,将内容放入其他文件并使用“require”调用它们应该用于调用库,而不是将运行的代码。“require”不是dofile,也不是eval,它会运行一次,而且只运行一次(当文件的第一个“require”产生时)。

如果你仍然想把东西放在其他文件中,比如加载你的背景,你需要做一个“background.lua”文件,它有一个“background.load()”函数和一个“background.unload()”函数,并且在适当的地方打电话给他们。

于 2012-12-21T12:33:10.260 回答