在 lua 中,我想要一个 table 的方法来全局更改其值,但它只在本地执行
In lua, I want a table`s method to change its value globally, but it only does locally
发生的情况是:我需要 self.key 随着按键在 true 和 false 之间切换。
显然,这发生在本地级别(如果我取消注释 "if" 子句,则打印会在按键时发生),而我需要的是它实际更改键对象的值.
keys = {}
keys.escape = false
keys.space = false
function keys:pressed()
for key in pairs(self) do
self.key = love.keyboard.isDown(key)
--if self.key then print(key) end
end
end
function love.update()
keys:pressed()
end
有什么解决办法吗?
您的问题与此无关,这是因为您正在设置 'key'
索引。不是单个键的索引...如果这有意义的话。
基本上当你设置self.key
时,key
是一个字符串。不是循环变量。为了设置它,您需要用方括号对其进行索引。
我的意思是:
keys = {}
keys.escape = false
keys.space = false
function keys.pressed(self)
for key in pairs(self) do
self[key] = love.keyboard.isDown(key)
--if self.key then print(key) end
end
end
function love.update()
keys:pressed()
end
这样我们使用 变量 key
而不是字符串 'key'
发生的情况是:我需要 self.key 随着按键在 true 和 false 之间切换。
显然,这发生在本地级别(如果我取消注释 "if" 子句,则打印会在按键时发生),而我需要的是它实际更改键对象的值.
keys = {}
keys.escape = false
keys.space = false
function keys:pressed()
for key in pairs(self) do
self.key = love.keyboard.isDown(key)
--if self.key then print(key) end
end
end
function love.update()
keys:pressed()
end
有什么解决办法吗?
您的问题与此无关,这是因为您正在设置 'key'
索引。不是单个键的索引...如果这有意义的话。
基本上当你设置self.key
时,key
是一个字符串。不是循环变量。为了设置它,您需要用方括号对其进行索引。
我的意思是:
keys = {}
keys.escape = false
keys.space = false
function keys.pressed(self)
for key in pairs(self) do
self[key] = love.keyboard.isDown(key)
--if self.key then print(key) end
end
end
function love.update()
keys:pressed()
end
这样我们使用 变量 key
而不是字符串 'key'