'then' 期望在 Lua 中的 ',' 附近但是我已经使用 then

作为一个完全的初学者,我在 Pico-8 上尝试着编写一些简单的代码:

function _update()
if p.x, p.y == 64, 45 then
 cls()
    print("dead", 37, 70, 14)
 end
end

当我运行程序时,会出现一个错误消息:

'then' 期望在 ',' 附近

我搜索了很多,但从未找到答案。有人可以帮忙吗?

点赞
用户5166781
用户5166781

你试图使用一个if格式:

if p.x,p.y == 64, 45 then
  [...]
end

你可以使用类似于这里使用的语法将值赋给多个变量。例如,

p.x,p.y = 64,45会将p.x设置为64,将p.y设置为45。但是您无法以这种方式检查多个变量的相等性。您需要分别检查每个变量:

if p.x == 64 and p.y == 45 then
  [...]
end

您的代码尝试将p.x,p.y == 64,45用作您的if分支的条件。这不起作用,因为Lua不理解这意味着p.x == 64 and p.y == 45。相反,它将其理解为无关语句列表(p.x,p.y == 6445),并在p.xp.y之间的逗号上陷入困境。

2018-08-01 12:30:14
用户4403144
用户4403144

这种方式给变量赋值是可以的:

a, b = 1, 2

但是在 if 语句中,你需要这样写:

if a == 1 and b == 2 then
    -- do something
end
2018-08-01 12:33:27