Пятница, 22 Ноября 2024, 18:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[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)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг