Corona SDK:当按下按钮时,如何使用循环打开特定的Lua页面?

我正在制作这个2D游戏,但是菜单页面遇到了问题。在菜单页面中,我希望每当按下“关卡按钮”时,相应的.lua文件就会打开。例如,当按下第一个按钮时,level1.lua就会被打开。我不熟悉corona sdk中的循环和数组。有人可以帮助我如何用循环实现这个功能吗?因为我的游戏的第一阶段有63个关卡,用手动的方式是太费时间了。谢谢你的时间。以下是我目前的代码:

local touchMenu = function (event)

   local obj = event.target
   local bid = obj.id

  for a = 1, numLevels, 1 do -- 循环遍历在 data.lua 中设定的关卡数量
        levels[a].id = a
  end

   if bid == 1 then

        _G.nextScene = "level"..1..""
        storyboard.gotoScene("loading")

    end
           if bid == 2 then

        _G.nextScene = "level"..2..""
        storyboard.gotoScene("loading")

    end
点赞
用户1979583
用户1979583

尝试一下:

for i=1,63 do -- 63 是关卡数量
  storyboard.gotoScene("level"..i)
  return true;
end

或者在你的情况下,你已经获取了 bid,那么以下代码就足够了:

storyboard.gotoScene("level".. bid)
return true;

继续编程............... :)

2013-11-10 03:41:21
用户1392789
用户1392789

你应该避免使用全局变量 (_G.nextScene)。 如果你想要处理全局变量并实现你的目标,可以这样做:

在你的menu.lua中:

local touchMenu = function(event)
    local obj = event.target
    local bid = obj.id
    local custom =
    {
        nextScene = "level" .. bid
    }
    storyboard.gotoScene("loading", {params=custom})
end

在你的loading.lua中:

local nextScene

-- 在需要时调用此函数
function scene:goToNextScene()
    storyboard.gotoScene(nextScene)
end

function scene:enterScene(event)
    nextScene = event.params.nextScene
end
scene:addEventListener("enterScene")
2013-11-10 07:55:33