Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 科罗纳sdk。从corona和lua开始,了解类/实例_Oop_Class_Lua_Instantiation_Coronasdk - Fatal编程技术网

Oop 科罗纳sdk。从corona和lua开始,了解类/实例

Oop 科罗纳sdk。从corona和lua开始,了解类/实例,oop,class,lua,instantiation,coronasdk,Oop,Class,Lua,Instantiation,Coronasdk,我刚刚开始学习corona和lua,我的第一个项目是做一个小骰子游戏,我刚刚开始!这是骰子对象 --declare table + metatable local dice = {} local dice_mt = {__index = dice} --CONSTRUCTOR function dice.new(ypos, xpos) local newdice = {xpos = xpos, ypos = ypos,dicetex

我刚刚开始学习corona和lua,我的第一个项目是做一个小骰子游戏,我刚刚开始!这是骰子对象

    --declare table + metatable

    local dice = {}

    local dice_mt = {__index = dice}


    --CONSTRUCTOR 

    function dice.new(ypos, xpos) 

    local newdice = {xpos = xpos, ypos = ypos,dicetext = display.newText("X", 50*xpos , 50*ypos , nil, 50)} 

    --dicetext = display.newText(facevalue, 50*xpos , 50*ypos , nil, 50)

    return setmetatable(newdice, dice_mt) 
    end

    --rolldice function

    function dice:rolldice()

    self.dicetext.text = math.random(0,6) 

    end

    return dice
游戏将有一个由25个骰子组成的网格,可以掷骰子(上面有掷骰子功能) 这是我的主菜

    display.setStatusBar(display.HiddenStatusBar)

    local diceclass = require ("dice")

    for i = 1, 5, 1 do

    local die = diceclass.new(i,i)

    i = i+1

    end

    die:rolldice()
我正试图以编程方式生成骰子网格(atm),我只是在对角线上生成5个骰子(只是文本)。到目前为止还可以,但我的问题是运行rolldice函数。它在只有1个骰子时有效,但在有更多骰子时无效。
我猜问题是我的类的所有实例都具有相同的名称。在我的for循环中创建它们时,有没有一种方法可以通过编程为它们指定不同的名称?或者有没有更好的方法可以做到这一点?谢谢!

local
变量之所以这样命名,是因为它们在定义它们的范围内是局部的.
die
for
循环中定义。因此,一旦您离开
for
循环,它将停止存在

如果要创建
die
对象的数组,需要创建一个可在循环外部访问的数组,然后将
die
对象添加到此数组中

另外,
i=i+1
也会适得其反,因为Lua知道如何增加循环本身。此外,它可能会导致未定义的行为