cocos的音乐与音效及其实例

cocos的音乐与音效及其实例

游戏里的声音按功能分为:

音乐 Music(BGM)背景音乐
音效 Audio当执行动作或响应的被脚本调用的音效
配音 Voice

播放声音,一般为2种办法:

  1. Audio source组件,一般适用于背景音乐播放,在节点上添加Audio source组件,设置相关属性即可
  2. Audio Engine ApI播放即 cc. audioEngine.play(clip,loop,volume)一般适用音效和配音的播放

AudioSource的设置:

Clip:音频素材
Volume:音量,介于[0-1]之间
Loop:是否循环播放
Mute:是否静音
Play On load:是否在激活时自动播放
Preload:是否预加载(先加载完整、后播放)

使用API来控制 Audiosource组件

let audioSource = node getComponent(cc. AudioSource)
audioSource.mute= true

AudioEngine包含多个API,可以实现更精细的控制
示例:

let audiold=cc.audioEngine.play(…)
cc.audioEngine.pause(audiold)
cc.audioEngine.resume(audiold)
cc.audioEngine.stop(audiold)
cc.audioEngine.setFinishCallback(audiold,callback)
cc.audioEngine.play方法会返回一个audioId
其中,audiold可以代表一路音频(一个播放线程)

直接使用cc. audioEngine.play()会出现混音的效果,即连续触发音频会让上一段声音未结束,下一段声音就开始播放,为解决这个问题,增加audioId变量,使用cc.audioEngine.setFinishCallback(audiold,callback)回调函数让改音频的播放线程为null;


    onLoad () {
   
        if(this.audio==null){
   
            cc.log("音效资源缺失");
            return;      
          }
          this.node.on('touchstart',this.audioPlay,this);
    }


    audioPlay(){
   
        if(this.audioId!=null){
   
            return;
        }
        let self=this;
        this.audioId=cc.audioEngine.play(this.audio,false,1);
        cc.audioEngine.setFinishCallback(this.audioId,function(){
   
            self.audioId=null;
        })

    }

注意闭包的写法,函数内嵌套的函数的this访问的并不是最外层的this,需要在外部用另一个指针self指向this的全局对象

听音辨字实例

在这里插入图片描述

初步场景搭建
在这里插入图片描述
在这里插入图片描述

在每个方框内动态生成汉字
设置一个全局变量optionNodes存放当前画面中的四个汉字,在通过一个方法随机从字符库中取得四个汉字赋值给optionNodes


    charPool : string[] = [
        '大', '小', '多', '少', '哥', '弟', '姐', '妹', '爸', '妈', '爷', '奶',
        '天', '地', '日', '月', '春', '夏', '秋', '冬'
    ];

    optionNodes:cc.Node[]=[];
    onLoad () {
   
        for(let i=1;i<=4;i++){
   
            this.optionNodes[i]= cc.find('Canvas/选项面板/选项'+i);
           //let node : cc.Node = cc.find('Canvas/选项面板/选项' + (i+1));
           // this.optionNodes.push( node );
        }
           this
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值