这里分为几种场景,一是点击NPC的时候,播放一段音乐,比如,你去点击药店,播放一段“大朗,你改吃药了”,关闭的时候提示,谢谢惠顾。
第二种场景是进入地图,自动播放音乐。
第三种场景是点击功能面板,播放音乐,比如点击商城,播放一段京剧,关闭的时候,播放谢谢惠顾。
下面就直接来方法吧:
1、点击NPC时,播放mp3教程
一般点击NPC会弹出一个对话框,这个对话框里面大致是这样的:开头定义了一个local PanelAchieve = {},在下面会有function PanelAchieve.initView()—这么一个功能块,点击NPC播放音乐就在这里面添加了,在最后return 前添加这么一句代码即可:
PlayAudio.play(“sound/soundnpc_21.mp3”)
代码注释:playaudio。play是播放mp3的功能函数,双引号中间是mp3文件位置,其中sound位于res目录下, soundnpc_21.mp3 是具体要播放的音乐文件,这个自定义即可,具体看图
注意,代码需要在return 之前。
这里需要注意:NPC面板不一样,这个panelachieve就不一样,但是,位置都是一样的,都在这个initView()功能块里添加。
第2个功能,进入地图,播放指定音乐mp3
这个跟简单,在\src\app目录下PlayAudio.lua文件,修改即可
在 PlayAudio.lua脚本文件中找到 约50行,将之前的代码备份,替换下面这个块
function PlayAudio.mapMusic(mapid) if PLATFORM_BANSHU then return end -- if G_SwitchMusic > 0 or not music or not PlayAudio.musstate then -- return -- end local music="sound/6003.mp3" if mapid=="kingcity" or mapid=="kinghome" then music="sound/sbk2.mp3" elseif mapid=="tucheng" then music="sound/6000.mp3" elseif mapid=="brm" then music="sound/6001.mp3" elseif mapid=="biqi" then music="sound/6002.mp3" end PlayAudio.music(music) end
这里注意几点,sound/6003.mp3是mp3文件位置,可自定义修改,下面是地图判断,如果地图id是什么,就播放什么音乐,这里可以添加更多的地图,地图ID去服务器里查看,mapinfo里面。
第3个功能,其实和第一个功能是一样的。
第4个小功能,点击时触发一个声音,关闭功能时触发一个声音,这个在src\app\GameEvent.lua 里修改
local Widget = ccui.Widget Widget.addClickOld = Widget.addClickEventListener Widget.addClickEventListener = nil function Widget:addClickEventListener(callback) local this = self this:addClickOld(function(event) if this:getDescription()=="Button" then if this:getName()=="panel_close" then PlayAudio.play("sound/btnclose.mp3") else PlayAudio.play("sound/click.mp3",1) end end if callback then callback(event) end end) return this end
注意,如果没有以上代码,在src\app\GameEvent.lua 余额60行处添加即可,如果有,就按照需求修改即可。这里可以看到一个是点击的音乐,一个是关闭的音乐,
if this:getName()==”panel_close” then
PlayAudio.play(“sound/btnclose.mp3”)
else
PlayAudio.play(“sound/click.mp3”,1)
……
在src\app\ui\UIRedPoint.lua文件中,也需要做修改
local UIRedPoint={} UIRedPoint.UIBtnTab = {} UIRedPoint.ShowRed = {} function UIRedPoint.addUIPoint(parent, callback ,moreEvent) local function btnCall(pSender,touch_type) if touch_type == ccui.TouchEventType.ended then if pSender:getName()=="panel_close" then PlayAudio.play("sound/btnclose.mp3") else PlayAudio.play("sound/btnclick.mp3") end callback(pSender,touch_type) end if moreEvent and touch_type ~= ccui.TouchEventType.ended then callback(pSender,touch_type) end end parent:addTouchEventListener(btnCall) end
这是一开始的代码,请对照修改