会发生什么:我需要self.key在按键和按键之间切换.
显然,这发生在本地级别(如果我取消注释"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'