音效的播放

GamePlayMusicPlayer.instance_ = nil;
function GamePlayMusicPlayer:ctor()
self.m_IsMusicOpen = 1;
self.m_IsEffectOpen = 1;


self.m_last_groundMusic = "";
end


function GamePlayMusicPlayer:getInstance()
if GamePlayMusicPlayer.instance_ == nil then
GamePlayMusicPlayer.instance_ = GamePlayMusicPlayer.new();
GamePlayMusicPlayer.instance_:initMusicSystem();
end
return GamePlayMusicPlayer.instance_;
end
function GamePlayMusicPlayer:initMusicSystem()
-------預加載音樂

-------預處理開關
----讀取以前的設置
self.m_IsMusicOpen = GameInfo_Lua:getIntegerForKey_default("Music", 1) ----沒有讀取到,默認爲打開
self.m_IsEffectOpen = GameInfo_Lua:getIntegerForKey_default("Effect", 1) ----沒有讀取到,默認爲打開
end
----預加載背景音樂
function GamePlayMusicPlayer:preloadBackgroundMusic(filename)
local fullPath = getMusicFilePath(filename)
if fullPath == "" then fullPath = filename end;
SimpleAudioEngine:sharedEngine():preloadBackgroundMusic(fullPath);
end
----播放音效
----level聲音等級,當同時需要播放幾個聲音時,優先播放等級高的----暫定
function GamePlayMusicPlayer:playEffect(filename, level)
if GamePlayMusicPlayer:getInstance().m_IsEffectOpen > 0 then
--print("GamePlayMusicPlayer:playEffect",filename);
local fullPath = getMusicFilePath(filename)
if fullPath == "" then fullPath = filename end;
SimpleAudioEngine:sharedEngine():playEffect(fullPath);
end
end
----播放背景音樂
----一般情況下,請忽略notRecard參數,或者寫false
function GamePlayMusicPlayer:playBackgroundMusic(filename, notRecard)
if not notRecard then
----記錄最後改播放的music
GamePlayMusicPlayer:getInstance().m_last_groundMusic = filename;
end
----判斷是否要播放
local isMusicOpen = GamePlayMusicPlayer:getInstance().m_IsMusicOpen;
if isMusicOpen > 0 then
if filename ~= "" then
local fullPath = getMusicFilePath(filename)
if fullPath == "" then fullPath = filename end;
SimpleAudioEngine:sharedEngine():playBackgroundMusic(fullPath, true);
end
end
end
function GamePlayMusicPlayer:stopBackgroundMusic()
SimpleAudioEngine:sharedEngine():stopBackgroundMusic();
end
------設置背景音開啓關閉狀態
function GamePlayMusicPlayer:setIsBackgroundMusicOpen(isOpen)
----內存修改
if type(isOpen) == "boolean" then
if isOpen == true then self.m_IsMusicOpen = 1;
else self.m_IsMusicOpen = -1; end 
else
self.m_IsMusicOpen = isOpen;
end
----記錄修改
local rt = 1;
if isOpen then rt = 1 else rt = -1 end
CCUserDefault:sharedUserDefault():setIntegerForKey("Music", rt);
CCUserDefault:sharedUserDefault():flush();
----播放效果修改
if isOpen then
self:playBackgroundMusic(self.m_last_groundMusic, true);----播放最後應該播放的那個音樂,且不記錄
else
self:stopBackgroundMusic();----關閉當前音樂
end
end
function GamePlayMusicPlayer:getIsBackgroundMusicOpen()
if self.m_IsMusicOpen > 0 then return true
else return false end
end
------設置音效開啓關閉狀態
function GamePlayMusicPlayer:setIsEffectMusicOpen(isOpen)
----內存修改
if type(isOpen) == "boolean" then
if isOpen == true then self.m_IsEffectOpen = 1;
else self.m_IsEffectOpen = -1; end 
else
self.m_IsEffectOpen = isOpen;
end
----記錄修改
local rt = 1;
if isOpen then rt = 1 else rt = -1 end
CCUserDefault:sharedUserDefault():setIntegerForKey("Effect", rt);
CCUserDefault:sharedUserDefault():flush();
----接下來有音效就對了,這裏啥也不用做
end
function GamePlayMusicPlayer:getIsEffectMusicOpen()
if self.m_IsEffectOpen > 0 then return true
else return false end
end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章