2015-02-26 3 views
1

Это мой код в Love2D:Love2D Lua ошибка: попытка вызвать поле «isDown» (нилъ значение)

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 

Я хочу, чтобы сделать игру, чтобы распознать контроллер при подключении. Но когда я запускаю игру, я получаю сообщение об ошибке:

attempt to call field 'isDown'(a nil value)

Где проблема?

+1

Какую версию любви вы используете? –

+0

Потому что с 'LÖVE 0.9.0' он был перемещен в' Joystick :: isDown() 'и доступен с' 0.7.2'. Источник: https://love2d.org/wiki/love.joystick.isDown – Kamiccolo

+0

Я использую Love 0.9.2 – Stucky

ответ

1

LÖVE 0.9.0 С джойстиком связанных isDown() функция перемещается в другую namespace/table/Вы называете л или более «объект», как структура. [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

+0

Спасибо большое! Сейчас работает :) – Stucky

+0

@Stucky, cool^_^так, не могли бы вы принять его как ответ, чтобы отметить этот вопрос, как ответили? – Kamiccolo

+0

Да, я отметил вопрос^_^ – Stucky

Смежные вопросы