标签: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