audio.play не работает - PullRequest
       9

audio.play не работает

0 голосов
/ 27 мая 2018

Я получаю «ошибку повышения стоимости», когда пытаюсь воспроизвести звук в моем приложении.У меня есть 2 файла:

sound_board.lua

local enemy_damaged = audio.loadSound( "assets/audio/enemy_damaged.wav" )
local ouch = audio.loadSound( "assets/audio/ouch.wav" )
local pew = audio.loadSound( "assets/audio/pew.wav" )

local function playSound(to_play)
    audio.play( to_play )
end

level1.lua

local sound_board = require("sound_board")

-- some code
function fireSinglebullet()
    sound_board:playSound(pew) -- line 295

    -- some other code
end

При запуске я получаю эту ошибку:

level1.lua:295: attempt to index upvalue 'sound_board' (a boolean value)

Что не так?

1 Ответ

0 голосов
/ 27 мая 2018

Посмотрите внимательно, что вы возвращаете в sound_board.lua файле.Сообщение об ошибке сообщает, что локальная переменная sound_board в level.lua является логическим значением.

Чтобы получить доступ к переменным из другого файла, используйте такие модули:

-- sound_board.lua

local M = {}

M.sounds = { 
  "enemy_damaged" = audio.loadSound( "assets/audio/enemy_damaged.wav" )
  "ouch" = audio.loadSound( "assets/audio/ouch.wav" )
  "pew" = audio.loadSound( "assets/audio/pew.wav" )
}

function M:playSound( to_play )

    audio.play( self.sounds[to_play] )

end

return M

и

-- level1.lua

local sound_board = require( "sound_board" )

-- some code
function fireSinglebullet()

    sound_board:playSound( "pew" ) -- line 295

    -- some other code
end 

Подробнее: Внешние модули в Corona

...