【发布时间】:2014-07-31 11:56:27
【问题描述】:
这是违规代码的简短摘录。总结是将 3 个 ccsprite 放入一个 lua 表中,然后我尝试以与我正在使用的示例相同的方式将这些节点添加到 cclayer。我得到的错误是:
addChild has wrong number of arguments: 0, was expecting 3
所以也许我可以相信表格条目会在添加功能的过程中消失,并通过对 Lua 奇异的作用域意识形态的一些创造性解释,但另一方面,如果我在尝试之前向表格添加 4 的表格条目添加表条目精灵(执行此操作的代码在那里并注释掉)我收到此错误:
[LUA-print] LUA ERROR: [string ".\GameScene.lua"]:101:
error in function 'lua_cocos2dx_Node_addChild'.
argument #1 is 'number'; 'cc.Node' expected.
所以我发现 addChild 对吞下 3 个精灵非常满意,但声明它们的存在表示参数计数为 0。我是 Lua 的新手,但这是一个不合理的不透明错误。我不明白。另请注意,在 lua 所依赖的 C++ 中,addchild() 是一个只有一个参数的函数,而不是 3,更不用说 0。
Pens = {}
for i = 1, 3 do -- The range includes both ends.
local bg = cc.Sprite:create("farm.jpg")
local spriteSize = bg:getContentSize()
local heightScale = frameSize.height/spriteSize.height
local lengthScale = frameSize.width/spriteSize.width
bg:setPosition(i*(self.origin.x + self.visibleSize.width / 2),
i*(self.origin.y + self.visibleSize.height / 2))
bg:setScale(lengthScale/2,heightScale/2)
Pens[i] = bg --.newKey = {i,bg}
print(Pens[i])
end
--Pens[4] = 4
--print(Pens[4])
print("bleh")
print(Pens[2])
for i, v in ipairs(Pens) do
print(v)
layerWorld.addChild(v)
end
具有相同行为的更简单的代码:
Pens = {}
for i = 1, 5 do
local spriteLand = cc.Sprite:create("land.png")
spriteLand:setPosition(i*20,i*20)
Pens[i] = spriteLand
end
for i, v in ipairs(Pens) do
print(v)
layerWorld.addChild(v)
end
【问题讨论】:
-
"代码应该被读成一个连续的块,但我无法说服 end 加入聚会"