【Cocos TypeScript 零基础 12.1】

发布于:2025-02-10 ⋅ 阅读:(63) ⋅ 点赞:(0)

AudioMgr 音频全局管理

能力有限讲解不了这个
SISK学院_点击跳转
cocos >飞机大战 > 59课
官方说明_点击跳转
功能模块 > 音频系统 > 全局音频管理示例

  1. 创建一个新的TS脚本 外部名与内部名一致 AudioMgr
  2. 删除新建脚本原代码,粘贴官方网站代码
  3. 老师这里是对音频文件也进行了分组的(建文件夹),我这里就不分组了
  4. 玩家属性上新建 audio 组件
    在这里插入图片描述
    {1} 音频文件
    (2) 是否循环
    (3) 是否运行游戏后自动播放
    (4) 音量大小 0最小 1最大

背景音关键代码

@property(AudioClip) bgmusic : AudioClip = null     //  背景音频绑定位
start() {
        AudioMgr.inst.play(this.bgmusic)    //  播放背景音
    }
this._audioSource.loop = true;      //  增加一个循环属性

在要播放的脚本添加 绑定位 和 执行播放
属性添加需进入复制的脚本里面
在这里插入图片描述
短音关键代码

@property(AudioClip) aud_bo_add : AudioClip = null  //  炸弹拾取音
@property(AudioClip) aud_bo_sub : AudioClip = null  //  炸弹使用音
@property(AudioClip) aud_over : AudioClip = null    //  游戏结束音绑定位

AudioMgr.inst.playOneShot(this.aud_over,0.5)    //  播放死亡音效

    on_bomb(b : number){    //  炸弹的加减做成一个函数
        b > 0 ? AudioMgr.inst.playOneShot(this.aud_bo_add,0.5) : AudioMgr.inst.playOneShot(this.aud_bo_sub,0.5)
        this.bomb += b;    //  炸弹增加
        this.ui_bomb.string = this.bomb.toString()  //  更新炸弹数量显示
    }

游戏暂停时,玩家声音太吵了
创建变量
函数控制播放

@property(AudioClip) aud_player : AudioClip = null  //  玩家音绑定位
audio_player(p : boolean){
        p ? AudioMgr.inst.play(this.aud_player,0.1) : AudioMgr.inst.stop()
    }

需要的地方引用此函数就好

结束啦

老师说结束啦
其实还有发布
后续我自己研究一下怎么发布出来
再把步骤写上来

老师补课

老师补课讲了两个问题

  1. 碰撞多次触发,是基于物理引擎,刚体边缘触发,有兴趣自行研究
  2. 事件触发 (因为没有弄懂,我的代码没有写自发触发,只写了系统触发)
    这里老师就讲了事件的触发
    this.node.emit () // 事件发起 局部
    this.node.on () // 事件接收 局部
    director.emit () // 事件发起 全局
    director.on () // 事件接收 全局
    老师演示
    在这里插入图片描述
    input 接收了一个事件,触摸抬起事件
    触摸抬起事件触发了函数
    函数发起了一个全局事件
    在这里插入图片描述
    在另一个节点上接收全局事件,并触发函数,传递this
    这个函数就才是实际需要做的事
    比较
    事件的触发,代码少点,但逻辑性要更强,不注意会出错,且不清楚能否多节点接收
    暴露this,代码多点,但逻辑性要求不高,需要什么就调用什么,简单粗暴

网站公告

今日签到

点亮在社区的每一天
去签到