当我尝试执行以下代码时,它给了我这个错误:
尝试索引字段'other'(零值)
但我不知道为什么。
代码:
function onCollision(event)
if event.phase == "began" then
if event.other.star == "star" then
score = score + 1
elseif event.other.mine1 == "mine1" then
if jet.collided == false then
timer.cancel(tmr)
jet.collided = true
jet.bodyType = "static"
explode()
end
end
end
end
提前致谢:)
答案 0 :(得分:5)
由于@lhf和@RBerteig表示问题是event.other
是nil
,因此尝试访问star
成员无法尝试索引零值。
假设event.other
确实可以是nil
,解决问题的惯用方法是在前一个if event.phase == "began" and event.other then
添加一个零检查,因为if和else条件都取决于event.other
待设置。
function onCollision(event)
if event.phase == "began" and event.other then
if event.other.star == "star" then
score = score + 1
elseif event.other.mine1 == "mine1" then
if jet.collided == false then
timer.cancel(tmr)
jet.collided = true
jet.bodyType = "static"
explode()
end
end
end
end
如果您想知道“尝试索引字段”的消息,您还可以阅读有关lua index metamethod here
的更多信息