Love2D Lua错误:尝试调用字段'isDown'(零值)

时间:2015-02-26 13:16:02

标签: 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")
        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'(零值)

问题出在哪里?

1 个答案:

答案 0 :(得分:1)

由于LÖVE 0.9.0与操纵杆相关的isDown()功能被移动到另一个namespace / table /您将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

joystickJoystick个对象。 [2]

请注意,love.keyboard.isDown()使用情况尚未改变。但是,我猜,它也即将到来。迟早。

[1] https://love2d.org/wiki/Joystick:isDown

[2] https://love2d.org/wiki/love.joystick.getJoysticks