Corona SDK:从表中显示Word

时间:2013-11-27 23:11:28

标签: lua corona

好的我的first question太模糊了,所以我在这里开始简单。我试图从另一个lua文件(content.lua)中的表中获取一个随机单词。我已经让代码运行没有错误,但无法在屏幕上显示或通过命令控制台中的打印。我错过了什么?

game.lua

--lua for game


--Loading the local variables

--creates the storyboard variable and calls the storyboard api
local storyboard = require ("storyboard")

--calls the mydata.lua module 
local myData = require( "mydata" )

--calls the sfx.lua where sounds are stored 
local sfx = require( "sfx" )
--calls the operations.lua
local operations = require("operations")
local content = require("content")
local playOrder
local wordGraphic
local currQuestion = 1
local homeButton


--tells storyboard to create a new scene
local scene = storyboard.newScene()

function scene:createScene(event)

    local gameScreen = self.view

        --creates a transparent background image centered on the display
    local gameBackground = display.newImage("images/graphics/jungle1.jpg")
        gameBackground.x = display.contentWidth/2
        gameBackground.y = display.contentHeight/2
        gameScreen:insert(gameBackground)

    homeButton = display.newImage("images/buttons/home.png")
        homeButton.alpha = .8
        homeButton.y = 70
        gameScreen:insert(homeButton)

    playOrder = operations.getRandomOrder(#content)

end


local function onHomeTouch(event)
        if event.phase == "began" then
        storyboard.gotoScene("start")
        end
    end 

    function scene:enterScene(event)
    homeButton:addEventListener("touch", onHomeTouch)   
    audio.play(sfx.Bkgd)

    --uses the operations.lua to get words in a random order from the content.lua



    --shows a random word from the content.lua table
    function showWord()
    local word = content[playOrder[currQuestion]].word
    print(word)

        wordGraphic = self.view
        wordGraphic:insert(word)

    wordGraphic.x = display.contentWidth/2
    wordGraphic.y = display.contentHeight/2
    end 
end



    --next question function which clears the screen and loads a new random word


    function scene:exitScene(event)
    homeButton:removeEventListener("touch", onHomeTouch)
    end




function scene:destroyScene(event)

end


--the actual event listeners that make the functions work
scene:addEventListener("createScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener("destroyScene", scene)



return scene

以下是获取随机顺序函数的operations.lua

--operations.lua
module(..., package.seeall)


--function to get a random piece of data
function getRandomOrder(amount)
    local order ={}
    local i
    local temp
    local temp1
    for n = 1,amount do
        order[n] = n
    end
    for i=0,9 do
        for temp = 1,amount do
            n = math.random(1, amount)
            temp1 = order[temp]
            order[temp] = order[n]
            order[n] = temp1
        end
    end
    return order
end 

这是我试图显示的单词的存储位置。我没有包括所有这些。

--content.lua
return {
    {
        id = "after",
        word = "after"
    },

    {
        id = "again",
        word = "again"
    },

    {
        id = "an",
        word = "an"
    },

    {
        id = "any",
        word = "any"
    },

    {
        id = "ask",
        word = "ask"
    },

    {
        id = "as",
        word = "as"
    },

    {
        id = "by",
        word = "by"
    }
}

1 个答案:

答案 0 :(得分:0)

您没有在目前为止显示的任何代码中调用showWord。这可能就是为什么它甚至不能打印到控制台。该函数只包含在scene:enterScene中并退出到外部作用域,在调用enterScene时将其自身定义为全局变量。