为什么要尝试对全局变量进行索引(它是空值)的Lua?

实际上,我正在使用教程学习,但是该教程中存在一些错误。

下面是代码:

class "Game"( Graphics )

Game.menuScreen  = nil
Game.gameScreen  = nil
Game.achScreen   = nil
Game.screen      = nil

-- main
function Game:main()
    -- 创建屏幕并将其链接存储在类中
    Game.menuScreen  = MainMenu.new()
    Game.gameScreen  = GameScreen.new()
    Game.achScreen   = AchScreen.new()

    -- 显示menuScreen
    Game.showScreen( 'menuScreen' )
end

-- showScreen
function Game.showScreen( name )
    -- 如果当前已经显示了一个屏幕,将其从舞台中移除
    if Game.screen then
        Stage.detach( Game.screen )
        Game.screen = nil
    end

    -- 根据名称获取链接
    local screen = Game[name]
    if not screen then
        return nil
    end

    -- 将屏幕添加到舞台
    Stage.attach( screen )
    -- 保存当前显示的屏幕
    Game.screen = screen

    return screen
end

它报错:[string "Game.script"]:11: attempt to index global 'MainMenu' (a nil value)

我使用的是Dreemchest Composer,并且该教程的链接是:http://dreemchest.com/doc/en/Game%20menu%20and%20screen.html

实际上,我从代码中删除了LEVEL选择屏幕,因为我不想在我的第一个游戏中实现级别选择。

我有一个叫做MainMenu的脚本,它的类是MainMenu,其超类为soMainMenu。

点赞
用户2301881
用户2301881

我不得不为所有菜单点创建舞台对象才能使它正常工作。这很容易,但教程可能没有写到,或者我只是没有理解它。

2014-01-03 17:18:14