重新加载使用Corona SDK的游戏。

我正在创建我的第一个 iPhone 游戏,但无法弄清如何重新加载我的游戏。

我正在使用 CoronaSDK,并尝试使用他们的 Composer API。当玩家死亡时,一个名为“play again”的按钮会出现,当他触摸它时,我将他引导到一个名为“reload.lua”的场景,其中包含composer.gotoScene("reload")

在这个场景中,我有以下代码:

function scene:show(event)
    local sceneGroup = self.view
    local phase = event.phase

    if (phase == "will") then

    elseif (phase == "did") then
        local replay = display.newImage('star1.png', 100, 300)
        composer.removeScene("level1")
        composer.gotoScene("level1")
    end
end

然而,这只会将 level1 添加到现有的场景上,并不会删除已使用的场景。有什么想法可以成功删除level1或重新加载我的游戏吗?

点赞
用户2260604
用户2260604

你应该慢慢仔细地阅读 这篇文章

该来源解释道:

为了让 Composer 来“管理”你的场景和其中的显示对象,所有这些对象必须被插入到场景的视图显示组或其中的子显示组中。

该组在代码中通过 scene:show 函数的最上面一行引用:

local sceneGroup = self.view

你必须将所有的显示对象添加到该组中,例如你的本地重播应该是:

local replay = display.newImage('star1.png', 100, 300)
sceneGroup:insert( replay )

一旦遵循了以上设计,你就可以开始利用 Composer 的其他特性,如你所请求的。

2014-07-16 18:03:01
用户1870706
用户1870706

虽然这篇文章是基于Composer的前辈Storyboard,但其中的概念同样适用于Composer。它解释了尝试重新加载场景时可能遇到的各种问题,并提供了如何管理它的建议:

http://coronalabs.com/blog/2013/08/20/tutorial-reloading-storyboard-scenes/

2014-07-20 01:59:17