Lua: ":40: '}' 期望(在第37行关闭的'{'附近)near '=')"

该错误说我缺少了一个},但我正在关闭{}。我正在使用Lua和TIC-80编写2D游戏。 我一直在尝试解决这个问题,但我不知道问题在哪里。有人可以帮帮我吗?错误说问题在“inferiorRight”对象中,并且我没有关闭“{”

function tryToMoveTo(myDisplacementY)
    superiorLeft = {
        x = player.x - 8,
        y = player.y - 8 - 1
    }
    superiorRight = {
        x = player.x + 4,
        y = player.y - 8 - 1
    }
    inferiorRight = {
        x = player.x + 7,
        y = player.y + 7,
        player.y = player.y + 7 + myDisplacementY
    }
    inferiorLeft = {
        x = player.x - 8,
        y = player.y + 7 + myDisplacementY
    }

    if collidesWithMap(inferiorRight) or
     collidesWithMap(inferiorLeft) or
        collidesWithMap(superiorRight) or
        collidesWithMap(superiorRight) then
     -- 碰撞
    else
        player.y = player.y + myDisplacementY
    end
end

function update()
    -- 向上
    if btn(0) then
      tryToMoveTo(-1)
    end
    -- 向下
    if btn(1) then
      tryToMoveTo(1)
    end
    -- 向左
    if btn(2) then
      player.x = player.x - 1
    end
    -- 向右
    if btn(3) then
      player.x = player.x + 1
    end
end
点赞
用户1442917
用户1442917

这里使用 player.y 作为表键不是正确的语法:

inferiorRight = {
    x = player.x + 7,
    y = player.y + 7,
    player.y = player.y + 7 + myDisplacementY --<--
}

如果你确实想要将 player.y 作为键,你需要写成 ["player.y"] 的形式。

2021-01-14 19:53:40