下面的代碼來自一個類,該類創建一個外星飛船並將其返回到太空射擊遊戲中的main.lua。電暈運行時錯誤:「嘗試調用一個零值」
我需要包括確定這艘船碰到物體會發生什麼功能,但是當我運行的代碼,和外星飛船確實碰到了什麼東西,我得到的電暈運行時錯誤:
attempt to call a nil value - start traceback: [C]:?
-- COLLISION FUNCTION
local function xenosColl(event)
if (event.phase == "began") then
print("hahf")
end
end
-- XENOS SHIP
function xenosShip.new()
local newXenosShip=display.newSprite(alShipSheet, alShipSeqData)
newXenosShip:play()
newXenosShip.x=580
newXenosShip.y=70
newXenosShipShape = {0,-40 , 60,0 , 0,40 , -60,0}
newXenosShip.myName = "newXenosShip"
physics.addBody(newXenosShip,"dynamic", {density = 1.0, friction = 0.3, bounce = 1, shape = newXenosShipShape})
newXenosShip:applyForce(0,2000,newXenosShip.x,newXenosShip.y)
newXenosShip:addEventListener("collision", xenosColl)
return setmetatable(newXenosShip, xenosShip_mt)
end
return xenosShip
如果我刪除碰撞事件監聽器,沒有錯誤,外星船隻碰到另一個對象,所以在嘗試調用這個函數時肯定有問題,但我弄不清楚是什麼。
添加錯誤行#這種情況正在發生。 nil值的變量名稱是什麼? – greatwolf
科羅娜給我的信息並不比我放在那裏的信息多。 – Ravn