如何用 Lua 中的表格替换打印的字符串,Love2D
How do I replace a printed string with tables in Lua, Love2D
当我按下鼠标右键时,我一直在尝试打印 "mode" table 中的第二个字符串。
但是当我点击按钮时,它打印 "mode: 1" 而不是 "mode: circle"。这是我的代码:
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
有人可以告诉我我做错了什么并纠正我吗?
next
returns 索引和值但没有状态,因此有第二个参数,您将前一个索引传递给该参数。
一般nextIndex, nextValue = next(mytable, previousIndex)
在您的示例中,您的 currentMode
被分配 nextIndex
,这是 "circle" 的索引并且值为 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
当我按下鼠标右键时,我一直在尝试打印 "mode" table 中的第二个字符串。 但是当我点击按钮时,它打印 "mode: 1" 而不是 "mode: circle"。这是我的代码:
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
有人可以告诉我我做错了什么并纠正我吗?
next
returns 索引和值但没有状态,因此有第二个参数,您将前一个索引传递给该参数。
一般nextIndex, nextValue = next(mytable, previousIndex)
在您的示例中,您的 currentMode
被分配 nextIndex
,这是 "circle" 的索引并且值为 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