0
我正在尝试在Lua中执行OOP,但它不会让我在checkInput {}方法中更改vel_y值。任何想法如何我可以得到这个工作?顺便说一下,我使用Love2D来处理这些输入内容。Lua OOP找不到变量
Player = {x = 100, y = 20, vel_x = 0, vel_y = 0}
function Player:new(o, x, y, vel_x, vel_y)
o = o or {} -- create object if user does not provide one
setmetatable(o, self)
self.__index = self
length = 0
return o
end
function Player:getX()
return self.x
end
function Player:getY()
return self.y
end
function Player:update(dt)
--update velocity
self.x = self.x + self.vel_x
self.y = self.y + self.vel_y
checkInput()
end
function checkInput(dt)
if love.keyboard.isDown("w") and length < 5 then --press the right arrow key to push the ball to the right
length = length + 1
self.vel_y = 5
print("bruhddddddddddddddddddddddd")
elseif love.keyboard.isDown("a") then
elseif love.keyboard.isDown("s") then
elseif love.keyboard.isDown("d") then
end
end
我假设“不让我改变checkInput {}方法中的vel_y值”,你的意思是你在这个点上得到一个关于'self'的错误是'nil'?这不是你的'Player'的方法,它没有任何隐含的'self'参数,并且你没有将该对象传递给函数,你期望它运行在什么地方? – 2015-02-11 03:47:48
@EtanReisner当我按'w'vel_y在upfate()中没有变化() – Joe 2015-02-11 04:09:11