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