【问题标题】:Storyboard/Modules故事板/模块
【发布时间】:2012-12-20 11:00:02
【问题描述】:

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

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

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

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

您认为我会如何以最简单的方式解决此问题?我对 Corona 很陌生,仍处于早期学习阶段。

【问题讨论】:

    标签: module storyboard coronasdk


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      不推荐使用模块。

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

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

      【讨论】:

        猜你喜欢
        • 2020-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-01
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 2012-12-18
        相关资源
        最近更新 更多