“然后”预计在“附近”,但是我已经和Lua在一起了

时间:2018-08-01 12:10:56

标签: lua pico-8

作为一个完整的初学者,我正在Pico-8上尝试一个小代码:

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

当我尝试运行该程序时,出现一条错误消息:

'then' expected near ','

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

2 个答案:

答案 0 :(得分:2)

您正在尝试使用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.xp.y == 6445)的列表,并以p.xp.y之间的逗号触发。

答案 1 :(得分:0)

通过这种方式为变量分配值是可以的:

a, b = 1、2

对于if语句,您需要执行以下操作:

if a == 1 and b == 2 then
    -- do something
end