一文带你实现游戏中的音乐、音效设置

在游戏开发过程中,背景音乐和音效的设置总是绕不过的,今天就来带大家实现一个简单的背景音乐和音效的设置逻辑。

 

1.首先将音乐资源和图片资源都导入到工程中(公众号后台回复「AudioTest」可获得完整工程,图片和音乐资源来自关东升老师《Cocos2d-x实战》,侵删。):

一文带你实现游戏中的音乐、音效设置

 

2.创建 MainScene,添加三个 Button 组件并摆放到合适位置:

一文带你实现游戏中的音乐、音效设置

 

3.创建 SettingScene,添加两个 Toggle 组件和一个 Button 组件并摆放到合适位置(背景音乐和音效开关为 Toggle 组件,返回按钮为 Button 组件):

一文带你实现游戏中的音乐、音效设置

 

4.场景创建完后就可以编辑脚本了,MainScene.js 和 SettingScene.js 脚本分别如下:

1 // MainScene.js 2 3 cc.Class({ 4 extends: cc.Component, 5 6 properties: { 7 music: { 8 default: null, 9 type: cc.AudioClip 10 }, 11 12 sound: { 13 default: null, 14 type: cc.AudioClip 15 } 16 }, 17 18 // LIFE-CYCLE CALLBACKS: 19 20 onLoad() { 21 this.initAudioState(); 22 this.playMusic(); 23 24 // 设置按钮回调函数 25 this.node.getChildByName("bt_startGame").on(cc.Node.EventType.TOUCH_START, this.cb_startGame, this); 26 this.node.getChildByName("bt_setting").on(cc.Node.EventType.TOUCH_START, this.cb_setting, this); 27 this.node.getChildByName("bt_help").on(cc.Node.EventType.TOUCH_START, this.cb_help, this); 28 }, 29 30 start() { 31 32 }, 33 34 // update (dt) {}, 35 36 // 开始游戏 CallBack 37 cb_startGame(button) { 38 this.playSound(); 39 console.log("startGame"); 40 }, 41 42 // 帮助 CallBack 43 cb_help() { 44 this.playSound(); 45 console.log("help"); 46 }, 47 48 // 设置 CallBack 49 cb_setting() { 50 this.playSound(); 51 cc.director.loadScene("SettingScene"); 52 }, 53 54 // 初始化音乐、音效状态 55 initAudioState(){ 56 if (!(cc.sys.localStorage.getItem("IS_SOUND"))) { 57 cc.sys.localStorage.setItem("IS_SOUND", false); 58 } 59 60 if (!(cc.sys.localStorage.getItem("IS_MUSIC"))) { 61 cc.sys.localStorage.setItem("IS_MUSIC", false); 62 } 63 }, 64 65 // 播放音效 66 playSound() { 67 if (cc.sys.localStorage.getItem("IS_SOUND") == "true") { 68 var sound = cc.audioEngine.playEffect(this.sound, false); 69 } 70 }, 71 72 // 播放音乐 73 playMusic() { 74 if (cc.sys.localStorage.getItem("IS_MUSIC") == "true") { 75 var music = cc.audioEngine.playMusic(this.music, false); 76 } 77 }, 78 });

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfpyw.html