Lua变量自动更改?

我是Lua和LOVE2D的新手。我认为一个很好的熟悉这些工具的方式是创建一个贪吃蛇风格的游戏。目前,我已经实现了大部分功能。但是在蛇吃掉食物后添加新身体时遇到了问题。我的蛇类目前由一个包含多个单元格的表格组成,每个单元格都具有一个gridX和gridY变量。我还有两个全局变量lastGridX和lastGridY来跟踪蛇类中最后一个单元格的上一个位置。我按相反的顺序更新单元格的位置,并将它们设置为表格中索引减1的单元格的位置。我只需将第一个单元格更新为添加一个称为SCALE的恒定值,即网格中每个正方形的大小。当第一个单元格的位置与食物的位置相同时,我的lastGridX和lastGridY也会更改为食物的x和y位置,尽管我从未手动更改它们。这使得每个单元格都具有相同的位置,这显然不是我想要的结果。任何帮助都将不胜感激,谢谢。以下是一些代码。\n\n``` function love.update(dt)

  • 在固定间隔内更新蛇的位置 moveTimer = moveTimer - dt if moveTimer <= 0 then lastGridX = snake[#snake].gridX lastGridY = snake[#snake].gridY
    • 更新蛇的身体 for i = #snake, 2, -1 do snake[i].gridX = snake[i - 1].gridX snake[i].gridY = snake[i - 1].gridY end

    • 更新蛇的头 if direction == "right" then snake[1].gridX = snake[1].gridX + SCALE elseif direction == "left" then snake[1].gridX = snake[1].gridX - SCALE elseif direction == "up" then snake[1].gridY = snake[1].gridY - SCALE elseif direction == "down" then snake[1].gridY = snake[1].gridY + SCALE end moveTimer = MOVE_TIMER_MAX print(lastGridX, lastGridY) print(snake[#snake].gridX, snake[#snake].gridY) if snake[1].gridX == newFood.gridX and snake[1].gridY == newFood.gridY then

      • 如果食物被吃掉,将其移动到网格上的随机位置 newFood.gridX = math.random(0, 63) * SCALE newFood.gridY = math.random(0, 35) * SCALE

      • 在蛇的末尾添加一个新的身体部位 newC = cell newC.gridX = lastGridX newC.gridY = lastGridY print(lastGridX, lastGridY) print(snake[#snake].gridX, snake[#snake].gridY) os.execute("pause") table.insert(snake, newC)

    end

end


点赞