动态分配对象2d数组lua

问题描述:

以下是我正在编写的代码。我试图动态地分配对象到lua中的2d数组。 (((i + 2)/ 10),((j + 2)/ 10)),它会返回一个错误,说在索引网格[i] [j] = diceclass.new尝试索引全局无值。有没有办法解决这个问题或者我正在尝试做什么,动态地为数组的每个元素分配一个对象?动态分配对象2d数组lua

local diceClass = require("dice") 
grid={} 
for i =1,5 do 
grid[i]= {} 
    for j =1,5 do 

     grid[i][j]=diceclass.new(((i+2)/10),((j+2)/10)) 
    end 
end 




--dice class 
local dice = {} 
local dice_mt = { __index = dice } 


function dice.new(posx, posy) 
a=math.random(1,6) 
local newdice = display.newText(a, display.contentWidth*posx, 
           display.contentHeight*posy, nil, 60) 

return setmetatable(newdice, dice_mt) 
end 



return dice 
+0

问题是什么?你的问题是什么? – 2012-07-18 13:39:09

+0

我想创建一个for循环,它将创建一个2d对象数组的问题。在线:grid [i] [j] = diceclass.new(((i + 2)/ 10),((j + 2)/ 10)我得到一个错误,说试图索引全局的 which是因为我没有事先声明对象,有没有办法解决这个错误,或者在lua中创建2d数组时动态分配对象? – David 2012-07-18 13:59:09

diceClass是不一样的变量作为diceclass

+0

谢谢。对于愚蠢的语法错误感到抱歉。 – David 2012-07-18 15:27:14

+2

@David,一个错字,不是一个语法错误,但是错误信息应该告诉你:'尝试索引全局'diceclass'(一个无值)'。 – lhf 2012-07-18 15:57:19