尝试索引全局'对象'(零值)

问题描述 投票:1回答:2

所以这是我得到的错误:

Game.lua:66: attempt to index global 'Spears' (a nil value)
stack traceback:
                         Game.lua:66: in function '_listener'

这是一些代码,显示错误发生的位置:

    local Spears = {} 
    local SpearsTimer 
    local SpearsCounter = 1


    local delayTimer
    local removeListeners




end
end




local field = display.newCircle( 0, 0, 0 ) ; field.alpha = 0.3
field.name = "field"
field.x = display.contentCenterX ; field.y = display.contentCenterY
physics.addBody( field, "static", { isSensor=true, radius=320 } )






    local spawnSpears = function() 
        local Fall = math.random(display.contentWidth * -0.2, display.contentWidth * 1.2) 
        Spears[SpearsCounter] = display.newImageRect( "Spear.png", 15, 50 ) 
        Spears[SpearsCounter].x = Fall 
        Spears[SpearsCounter].y = -200  
        physics.addBody( Spears[SpearsCounter], "dynamic", {bounce = 0} ) 
        --Spears[SpearsCounter].collision = onCollision 
        --Spears[SpearsCounter]:addEventListener( "collision", Spears[SpearsCounter] ) 
        transition.to( Spears[SpearsCounter], { rotation = Spears[SpearsCounter].rotation+720, time=15000, onComplete=spinImage } ) 
        Spears[SpearsCounter].gravityScale = 0.5 
        sceneGroup:insert(Spears[SpearsCounter])
        group:insert(Spears[SpearsCounter])
        SpearsCounter = SpearsCounter + 1
    end 


   SpearsTimer = timer.performWithDelay( 5000, spawnSpears, -1 )
The Error points to line 66, which is this line of code:

        Spears[SpearsCounter] = display.newImageRect( "Spear.png", 15, 50 ) 

那么我做错了什么?

哦,请记住,我正在尝试使对象在整个屏幕中随机生成并下降/进入屏幕中心。我把Radial Gravity。

lua sdk null corona
2个回答
0
投票

问题是你已经宣布了

    local Spears = {}

在该功能之外无法访问的功能。尝试在函数和访问之外声明它。了解变量的范围。


-1
投票

这很可能是范围问题。本教程将指导您了解范围:

https://coronalabs.com/blog/2015/06/16/tutorial-scope-for-beginners/

© www.soinside.com 2019 - 2024. All rights reserved.