所以这是我得到的错误:
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。
答案 0 :(得分:0)
问题是你已经宣布了
local Spears = {}
在该功能之外无法访问的功能中。尝试在函数和访问之外声明它。了解变量的范围。
答案 1 :(得分:-1)
这很可能是范围问题。本教程将指导您了解范围:
debuggex.com is a great resource for visualizing these sorts of things