2016-11-23 51 views
0

我試圖運行我的lua腳本時不斷收到錯誤。 錯誤是:壞參數#1「插入」(表預期,得到了無)不好的論據#1'插入'(表預期,得到零)錯誤在love2d lua

這裏是我的gameloop代碼:

local GameLoop = {} 

local insert = table.insert 
local remove = table.remove 

function GameLoop:create() 

    local gameLoop = {} 

    function gameLoop:addLoop(obj) 

     insert(self.clocks,obj) 

    end 

    function gameLoop:update(dt) 

     for clocks = 0,#self.clocks do 
      local obj = self.clocks[clocks] 
      if obj ~= nil then 
       obj:tick(dt) 
      end 
     end 

    end 

return gameLoop 

end 

return GameLoop 

回答

0

從代碼中你已經證明,你gameLoop表不包含一個clocks成員,所以你真的將nil傳遞給insert(self.clocks, obj)的第一個參數。

簡單的修復就是添加該成員。

local gameLoop = { clocks = {} } 

順便說一句,通常最好使用元表寫這個類型的構建體,因爲它減少了功能重複。

local insert, remove = 
    table.insert, table.remove 

local GameLoop = {} 
GameLoop.__index = GameLoop 

function GameLoop:create() 
    return setmetatable({ 
     clocks = {} 
    }, self) 
end 

function GameLoop:addLoop (obj) 
    insert(self.clocks, obj) 
end 

function GameLoop:update (dt) 
    for _, clock in ipairs(self.clocks) do 
     obj:tick(dt) 
    end 
end 

return GameLoop 
+1

謝謝!窗口現在打開,沒有任何錯誤。 (完美的作品!) – Ninjakid

相關問題