[LUA] Ошибка при загрузке звука
|
|
pro100denver | Дата: Воскресенье, 18 Декабря 2011, 03:45 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Собирал "Музыкальный автомат" по туториалу от Алхимика. Столкнулся с проблемой, что при запуске выбивает ошибку
error main.lua:7: attempt to call field ‘newSourse’ (a nil value)
Traceback main.lua:7: in function ‘load’
Для эксперимента я удалял звуковые файлы из архива. Однако опять же писалась та же ошибка. Такое ощущение что Love не видит звуковые файлы в архиве.
Код main.lua
Code local audio = love.audio local m = love.mouse local gr = love.graphics song = {} for i=1, 2 do table.insert(song, {sourse, label}) end function love.load() song[1].source = audio.newSourse("greenday.ogg") song[1].label = "Green Day - Homecoming" song[2].source = audio.newSource("adtr.ogg") song[2].label = "ADTR - Since You Been Gone" nowPlay = song[1] audio.play(nowPlay.source) songLabel = nowPlay.label bFont = gr.newFont(18) end function love.update() if nowPlay.source:isStopped() then randomSong() -- Вкл функция рандома end end function love.draw() gr.setFont(bFont) gr.setColor(255, 0, 0, 200) love.graphics.print(songlabel, 10, 150) if button("Green Day - Homecoming", 10, 20) then setSong(1) end if button("ADTR - Since You Been Gone", 10, 40) then setSong(2) end end function randomSong() nowPlay = song[math.random(2)] songLabel = nowPlay.label audio.play(nowPlay.source) end function setSong(song_num) nowPlay.source:stop() nowPlay = song[song_num] songLabel = nowPlay.label audio.play(nowPlay.source) end function button(text, x, y) mX, mY = m.getPosition() md = m.isDown('l') local w, h = bFont:getWidth(text), bFont:getHeight() local hot if mX >= x and mX <= x+w and mY >= y and mY <= y+h then gr.setColor(0, 255, 0, 255) hot = true else gr.setColor(255, 0, 0, 200) hot = false end gr.print(text, x, y) return hot and md end function love.load() fon = love.graphics.newImage("fon.png") x = 0 y = 0 speed = 0 end function love.conf(t) t.screen.width = 500 t.screen.height = 700 t.title = "DE№VER song box" t.screen.vsync = true end
Мой блог.DENVER
|
|
| |
allxumuk | Дата: Воскресенье, 18 Декабря 2011, 07:56 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Глянь внимательно на 7-ую строку, ты там вместо newSource, написал, newSourse.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
pro100denver | Дата: Воскресенье, 18 Декабря 2011, 20:00 | Сообщение # 3 |
участник
Сейчас нет на сайте
| allxumuk, Ой =) Все равно опять эта ошибка. Может я сам файл love скину? Ибо моя интуиция подсказывает что я как то не так запаковал.
http://rghost.ru/35411031
Мой блог.DENVER
|
|
| |
allxumuk | Дата: Понедельник, 19 Декабря 2011, 03:57 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Quote (pro100denver) Ибо моя интуиция подсказывает что я как то не так запаковал. Запаковал нормально, а вот второй раз писать функцию love.load() было лишним. Ещё и переменную songLabel, написал с маленькой буквой L на 24-ой строке. http://zalil.ru/32312427
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
pro100denver | Дата: Понедельник, 19 Декабря 2011, 13:51 | Сообщение # 5 |
участник
Сейчас нет на сайте
| allxumuk, Спасибо. В этом разобрался. Но у меня почему то не пашет . Окно как было стандартным, так и осталось.
Code function love.conf(t) t.screen.width = 500 t.screen.height = 700 t.title = "DE№VER song box" t.screen.vsync = true end
Мой блог.DENVER
|
|
| |
allxumuk | Дата: Понедельник, 19 Декабря 2011, 15:06 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| pro100denver, функцию конфигурации лучше вынеси в файл conf.lua
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
pro100denver | Дата: Понедельник, 19 Декабря 2011, 18:56 | Сообщение # 7 |
участник
Сейчас нет на сайте
| allxumuk, Еще раз спасибо )
Кстати еще проблема, я хотел сделать простейшее оформление. Просто загрузить изображение. Так вот.
Code function love.load() fon = love.graphics.newImage("fon.png") x = 0 y = 0 speed = 0 end
^ Не работает.
PS. Я только изучаю LUA, поэтому такой нуб. Просто надо отвыкать уже от нодового программирования в FlouGraph (CryE) и Кизмет (UE)
Мой блог.DENVER
|
|
| |
allxumuk | Дата: Вторник, 20 Декабря 2011, 07:38 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Quote (pro100denver) Просто загрузить изображение. Не работает. Ты загружал картинку в той же функции love.load(), в которой загружал песни? После того, как загрузил изображение, его нужно нарисовать в функции love.draw(). Кстати, функция setColor(), действует так же и на спрайты, поэтому перед рисованием фона выстави цвет на белый.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
Самоделкин | Дата: Понедельник, 30 Января 2012, 11:56 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Тоже потихоньку основные принципы lua постигаю. Но пока слишком общо (на примере уроков по Corona SDK на английском=)) (Кстати от очепяток (да и вообще подсказывает порой альтернативные варианты и поясняет что за аргументы ты использовал сам тго не зная))) о помогает Lua.xml засунутый в C:\Program Files\Notepad++\plugins\APIs)
|
|
| |