반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


loadSoundLibrary: a quick way of structuring and loading your sound effects



Posted by BeyondtheTech, Posted on March 8, 2013




여러분 코드가 여러분이 로드해야 할 사운드 효과들로 조금 어지러워져 있다면 보다 적은 코딩으로 훨씬 더 쉽게 사운드를 로드 할 수 있는 정보를 이 글에서 보실 수 있으실 겁니다.

개발을 하다 보면 이미지 파일이나 lua 파일들과 더불어 사운드 파일들도 시간이 지날수록 숫자가 많이지게 될 겁니다. 그리고 그러한 파일들을 구분하려면 긴 디렉토리 이름을 찾아가느라고 힘들게 되구요. 이 글에서 보여드리는 예제는 그러한 부분들도 고려 된 겁니다. 좀 더 쉬운 방법으로 각각의 하위폴더를 관리할 수 있도록 해 드릴 겁니다.

예를 들어 여러분 코드가 이렇게 돼 있을 때...


sound_fx[ "meow" ] = audio.loadSound( "meow.caf" )
sound_fx[ "bark" ] = audio.loadSound( "bark.caf" )
sound_fx[ "explosion" ] = audio.loadSound( "explosion.caf" )
sound_fx[ "laugh" ] = audio.loadSound( "laugh.caf" )
sound_fx[ "cry" ] = audio.loadSound( "cry.caf" )
sound_fx[ "fart" ] = audio.loadSound( "fart.caf" )
sound_fx[ "belch" ] = audio.loadSound( "belch.caf" )
sound_fx[ "kiss" ] = audio.loadSound( "kiss.caf" )
sound_fx[ "slap" ] = audio.loadSound( "slap.caf" )
sound_fx[ "punch" ] = audio.loadSound( "punch.caf" )
sound_fx[ "boing" ] = audio.loadSound( "boing.caf" )
...


보시면 아시겠지만 라인별로 많은 부분이 반복됩니다.





저의 loadSoundLibrary 를 사용하시면 프로그래밍 하기 훨씬 더 쉬워지실 겁니다.


local function loadSoundLibrary( ... )
        -- quick-load a bunch of audio files, by Raphael Salgado aka BeyondtheTech, 2013
        if #arg < 2 then
                print( "Invalid number of arguments for loadSoundLibrary" )
        else
                local loadList, t, soundName
                local t2 = 0
                for t = 2, #arg do
                        soundName = arg [ t ]
                        if sound_fx[ soundName ] ~= nil then
                                print( "Warning - Sound name element " .. soundName .. " already exists, skipping" )
                        else
                                sound_fx[ soundName ] = audio.loadSound( arg[ 1 ] .. "/" .. soundName .. ".caf" )
                                -- check, did it load successfully?
                                if sound_fx[ soundName ] ~= nil then t2 = t2 + 1 end
                        end
                end
                print( "Loaded " .. t2 .. " out of " .. #arg - 1 .. " " .. arg[ 1 ] .. " sounds" )
        end
end


이제 같은 오디오 파일 세트를 불러오기 위해서 아래 한줄만 추가하시면 됩니다.

loadSoundLibrary( "SFXstuff", "meow","bark","explosion","laugh","cry","fart","belch","kiss","slap","punch","boing" )


물론 SFXstuff라는 서브폴더를 생성해서 .caf 파일들을 그곳에 넣어야 겠죠.

이 함수의 첫번째 인수는 폴더 이름 입니다.  그 다음은 모두 테이블에 들어갈 sound element 들이구요. 즉 확장자가 없는 sound 파일들이죠.
일단 정확한 argument들의 숫자를 전달했는지 체크하구요. sound 이름을 잘 못 사용했다면 warning 도 해 줍니다.


이 정보가 여러분 코딩을 좀 더 쉽고 빠르게 하는데 도움이 되기를 바랍니다.


==> 이번 글은 BeyondtheTech 라는 곳에서 공유한 팁 입니다. 원문은 저 위의 제목을 클릭하면 보실 수 있습니다.

반응형

Comment