如何用Lua、Love2D中的表替换打印的字符串

如何用Lua、Love2D中的表替换打印的字符串,lua,love2d,Lua,Love2d,当我按下鼠标右键时,我一直在尝试打印“模式”表中的第二个字符串。 但当我点击按钮时,它会打印“模式:1”,而不是“模式:圆圈”。这是我的密码: function love.load() mode = {"square", "circle"} currentMode = mode[1] end function nextMode() currentMode = next(mode) print(currentMode) end function love.draw() love.graphic

当我按下鼠标右键时,我一直在尝试打印“模式”表中的第二个字符串。 但当我点击按钮时,它会打印“模式:1”,而不是“模式:圆圈”。这是我的密码:

function love.load()
mode = {"square", "circle"}
currentMode = mode[1]
end

function nextMode()
currentMode = next(mode)
print(currentMode)
end

function love.draw()
love.graphics.print("mode: " .. currentMode, 10, 10)
end

function love.mousepressed(x, y, button)
if button == "r" then
nextMode()
end
end

有人能告诉我我做错了什么并纠正我吗?

下一步
返回索引和值,但不保留任何状态,因此有第二个参数传递上一个索引

通常
nextIndex,nextValue=next(mytable,previousIndex)

在您的示例中,您的
currentMode
被指定为
nextIndex
,它是“圆”的索引,是值2

以下是一个工作示例:

function love.load()
   mode = {"square", "circle"}
   currentIndex, currentMode = next(mode)
end


function love.mousepressed(x, y, button)
    if button == "r" then
       currentIndex, currentMode = next(mode, currentIndex)
    end
end

function love.draw()
   love.graphics.print("mode: "..currentMode, 10, 10)
end