来自 CS50 游戏课程的 push.lua 错误

Error with push.lua from CS50 game course

我对包含“main.lua”和“push.lua”的文件夹“pong-1”有疑问。当我 select 他们进入“LÖVE”时,它说:

>Error
push.lua:71: bad argument #1 to 'insert' (table expected, got number)
[C]: in function 'insert'
push.lua:71: in function 'setupCanvas'
main.lua:12: in function 'load'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

我尝试了 push.lua 的过时版本(它提供了课程的源代码)以及我能找到的最新版本,但都没有用。两者都显示相同的错误消息。可能是什么问题?

function push:setupCanvas(canvases)
  table.insert(canvases, { name = "_render", private = true }) --final render

  self._canvas = true
  self.canvases = {}

  for i = 1, #canvases do
    push:addCanvas(canvases[i])
  end

  return self
end

此函数期望 canvases 为 table 值。

您在函数调用中提供了一个数值VIRTUAL_WIDTH

push:setupCanvas(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, WINDOW_WIDTH,
  WINDOW_HEIGHT,{ fullscreen = false, resizable = false, vsync = true })

相反。

您似乎混淆了 setupCanvassetupScreen