标签:c++ cocos2d 游戏 cocos2d-x cocos2d-js
Cocos2d-JS提供了一个音频CocosDenshion引擎。具体使用的API是cc.AudioEngine。cc.AudioEngine有几个常用的函数:cc.game.onStart = function(){ cc.view.setDesignResolutionSize(1136, 640, cc.ResolutionPolicy.EXACT_FIT); cc.view.resizeWithBrowserSize(true); //load resources cc.LoaderScene.preload(g_resources, function () { ① cc.director.runScene(new HelloWorldScene()); }, this); }; cc.game.run();其中cc.LoaderScene.preload函数可以预处理一些资源,其中g_resources是资源文件集合变量,它是在resource.js文件中定义的,resource.js文件的内容如下:
var res = { //image On_png: "res/on.png", Off_png: "res/off.png", background_png: "res/background.png", start_up_png: "res/start-up.png", start_down_png: "res/start-down.png", setting_up_png: "res/setting-up.png", setting_down_png: "res/setting-down.png", help_up_png: "res/help-up.png", help_down_png: "res/help-down.png", setting_back_png: "res/setting-back.png", ok_down_png: "res/ok-down.png", ok_up_png: "res/ok-up.png", //plist //fnt //tmx //bgm //music bgMusicSynth_mp3: ‘res/sound/Synth.mp3‘, ① bgMusicJazz_mp3: ‘res/sound/Jazz.mp3‘ ② //effect }; var g_resources = [ ③ ]; for (var i in res) { ④ g_resources.push(res[i]);}
cc.audioEngine.playMusic(res.bgMusicSynth_mp3, true); cc.audioEngine.stopMusic(res.bgMusicSynth_mp3);其中cc.audioEngine是cc.AudioEngine类创建的对象。
var SettingLayer = cc.Layer.extend({ ctor:function () { this._super(); cc.log("SettingLayer init"); //播放代码 ① return true; }, onEnter: function () { this._super(); cc.log("SettingLayer onEnter"); //播放代码 ② }, onEnterTransitionDidFinish: function () { this._super(); cc.log("SettingLayer onEnterTransitionDidFinish"); //播放代码 ③ }, onExit: function () { this._super(); cc.log("SettingLayer onExit"); //播放代码 ④ }, onExitTransitionDidStart: function () { this._super(); //播放代码 ⑤ } });关于播放背景音乐,理论上我们是可以将播放代码cc.audioEngine.playMusic(res.bgMusicSynth_mp3, true)放置到三个位置(代码中的①、②、③)。下面我们分别分析一下它们还有什么不同。
var HelloWorldLayer = cc.Layer.extend({ ctor:function () { this._super(); cc.log("HelloWorldLayer init"); }, onEnter: function () { this._super(); cc.log("HelloWorldLayer onEnter"); }, onEnterTransitionDidFinish: function () { this._super(); cc.log("HelloWorldLayer onEnterTransitionDidFinish"); }, onExit: function () { this._super(); cc.log("HelloWorldLayer onExit"); //停止播放代码 ① }, onExitTransitionDidStart: function () { this._super(); //停止播放代码 ② } });关于停止背景音乐播放,理论上我们是可以将停止播放代码cc.audioEngine.stopMusic(res.bgMusicSynth_mp3)放置到两个位置(代码中的①和②)。下面我们分别分析一下它们还有什么不同。
代码放到第②行(即在HelloWorldLayer onExitTransitionDidStart函数),从图9-1可见,HelloWorldLayer onExitTransitionDidStart函数第一个被执行,如果我们的停止播放代码放在这里,不会对其它场景的背景音乐播放产生影响。我们推荐停止播放代码放在这里。
《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:
京东:http://item.
标签:c++ cocos2d 游戏 cocos2d-x cocos2d-js
原文地址:http://blog.csdn.net/tonny_guan/article/details/44890853