Love2D If # of i,v in table

Love2D If # of i,v in table

所以我想在Love2D中做一个按键系统,代码都写好了。问题是它不允许我测试 table 中 i,v 的数量。我的代码是这样的:

function love.load()
 colorA={"blue", "yellow"}
 colorB={"blue"}
 colorC={"blue"}
end
function love.update(dt)
 --The update stuff that I wrote
end
function love.draw()
 for i,v in pairs(colorA) do
  if i,v == 2 then
   love.graphics.setColor(255, 255, 0)
  else
   love.graphics.setColor(0, 0, 255)
  end
 end
 love.graphics.rectangle(My button data)
 --The same thing for other 2 buttons
end

上面写着

"Syntax error: main.lua:57: 'then' expected near ','".

(我有更多的代码,所以不要因为 "main.lua:57" 而认为它是其他东西,那是我实际代码上的行。)帮助!

it won't let me test for the number of i,vs in my table if i,v == 2 then

您不能同时进行两次比较。每个比较都是一个单独的表达式,您可以将其与布尔运算符结合使用。例如:

if i == 2 and v == 2 then

但是,看看您的其余代码,您似乎只是在尝试比较 iv,因此您应该这样做。


通过数组中的硬编码位置来引用颜色是一种非常糟糕的方法。您还循环浏览颜色列表并调用 setColor,但实际上只有最后一个调用会 任何事情,所以这真的没有意义。