0

我正在开发这款 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 -- loop through the number of levels set up in 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
4

2 回答 2

1

尝试这个:

for i=1,63 do -- 63 is the number of levels
  storyboard.gotoScene("level"..i) 
  return true;
end

或者在您的情况下,您已经可以获取bid,那么以下内容可能就足够了:

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

继续编码...... :)

于 2013-11-10T03:41:21.757 回答
0

您应该避免使用全局变量 (_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

-- Call this function when you want
function scene:goToNextScene()
    storyboard.gotoScene(nextScene)    
end

function scene:enterScene(event)
    nextScene = event.params.nextScene
end
scene:addEventListener("enterScene")
于 2013-11-10T07:55:33.277 回答