簡體   English   中英

Love2D Lua錯誤:嘗試調用字段“ isDown”(nil值)

[英]Love2D Lua error: attempt to call field 'isDown' (a nil value)

這是我在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()函數已移至另一個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

其中joystick是您的Joystick對象。 [2]

請注意, love.keyboard.isDown()的用法尚未更改。 但是,我想也是。 遲早。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM