Lua 错误参数#-1到';addBody';(预期代理,获得零)

Lua 错误参数#-1到';addBody';(预期代理,获得零),lua,coronasdk,Lua,Coronasdk,我正在使用这段代码生成objects,但有时会出现这样的错误(addBody(Proxy expected,got nil)的错误参数#-1),知道为什么吗 local numberRock = 1 local function clearRock( thisRock ) display.remove( thisRock ) ; thisRock = nil end local function spawnRocks() rockChek = math.random(1, 7)

我正在使用这段代码生成objects,但有时会出现这样的错误(addBody(Proxy expected,got nil)的错误参数#-1),知道为什么吗

local numberRock = 1

local function clearRock( thisRock )
   display.remove( thisRock ) ; thisRock = nil
end

local function spawnRocks()
    rockChek = math.random(1, 7)
    if  rockChek == 1 then
        rocks = display.newImageRect("rockes/rock1.png",110 ,86 )
    elseif  rockChek == 2 then
        rocks = display.newImageRect("rockes/rock2.png",97 ,65 )
    elseif  rockChek == 3 then
        rocks = display.newImageRect("rockes/rock3.png",101 ,61 )
    elseif  rockChek == 6 then
        rocks = display.newImageRect("rockes/rock4.png",95 ,59 )
    elseif  rockChek == 7 then
        rocks = display.newImageRect("rockes/rock5.png",107 ,77 )
    end   
    for i=1,numberRock do
        rocks.x = math.random(-10, 400);
        rocks.y =display.contentHeight + 100;
        transition.to( rocks, { time=2000,  y= display.contentHeight - display.contentHeight - 100 , onComplete=clearRock  } );
        physics.addBody( rocks, "dynamic", {density=.1, bounce=0.1, friction=.2, shape= shape2 ,filter=playerCollisionFilter } )   
        rocks.name = "rocks"
        rocks.isSensor = true
        rocks.rotation =  math.random(100, 1800)
   end
end
Rockspawner1 = timer.performWithDelay( 1500, spawnRocks, 0 )  

您忘记处理
rockCheck
为4或5的情况。加上这些,你就没事了

或者,将ramdom调用从1改为5,并将6和7分别替换为4和5


顺便说一下,确实考虑了<代码> ROCKECUT/<代码>代码>本地< /代码>变量(用<代码>本地ROCCHECK=…./COD>)

<代码>岩石< <代码> > <代码> nIL/COD>在下面的行中,<代码> ROCCHECK/<代码>的随机值为4或5

physics.addBody( rocks, "dynamic", {density=.1, bounce=0.1, friction=.2, shape= shape2 ,filter=playerCollisionFilter } )