Love2D Lua错误:尝试调用字段';伊斯敦';(零值)

Love2D Lua错误:尝试调用字段';伊斯敦';(零值),lua,love2d,Lua,Love2d,这是我在Love2D中的代码: function love.load() ninja = love.graphics.newImage("Ninja.png") x = 0 y = 0 speed = 256 end function love.update(dt) if love.keyboard.isDown("right") then ninja = love.graphics.newImage("NinjaRight.png

这是我在Love2D中的代码:

function love.load()   
    ninja = love.graphics.newImage("Ninja.png")
    x = 0
    y = 0
    speed = 256
end

function love.update(dt)
    if love.keyboard.isDown("right") then
        ninja = love.graphics.newImage("NinjaRight.png")
        x = x + (speed * dt)
    end

    if love.keyboard.isDown("left") then
        ninja = love.graphics.newImage("NinjaLeft.png")
        x = x - (speed * dt)
    end

    if love.keyboard.isDown("down") then
        y = y + (speed * dt)
    end

    if love.keyboard.isDown("up") then
        y = y - (speed * dt)
    end

    if love.joystick.isDown(joystick, 1, 2, 3, 4) then
        a = 5
    end
end


function love.draw()
    love.graphics.draw(ninja, x, y)
end
我想让游戏在连接时识别控制器。 但当我运行游戏时,我收到错误:

尝试调用字段“isDown”(一个nil值)


问题出在哪里?

因为
LÖVE 0.9.0
与操纵杆相关的
isDown()
函数被移动到另一个
命名空间
/
/您可以命名ir或更多类似“对象”的结构。[1]

因此,在您的代码中,您应该这样使用它:

--Get table of all connected Joysticks:
local joysticks = love.joystick.getJoysticks()

--Pick first one:
local joystick = joysticks[1]

if joystick:isDown(1, 2, 3, 4) then
    a = 5
end
其中
操纵杆
是您的
操纵杆
对象。[2]

请注意,用法尚未更改。但是,我想,它也将如此。迟早会的

[1]


[2]

你使用的是什么版本的爱情?因为自从
LÖVE 0.9.0
它被移动到
mogage::isDown()
并且从
0.7.2
开始可用。资料来源:我使用的是爱0.9。2@Stucky,酷^ ^ ^那么,你能接受它作为答案,将这个问题标记为已回答的问题吗?