更新于 

Resources 图片与音频资源

resources 资源管理

Asset Manager概述

cocos中默认resources文件夹为动态加载资源的文件夹,
使用cc.resources.load方法可以动态获取到资源

1
2
3
// url:相对于resources的url路径
// type:资源类型
resources.load(url, type, (err, asset)=>{})

动态加载SpriteAtlas资源:

1
2
3
4
5
6
7
8
9
10
// 动态加载cc.SpriteAtlas资源
cc.resources.load('imgs/character/PinkMan/pinkman_idle',cc.SpriteAtlas,(error: Error, assets: cc.SpriteAtlas) => {
this.idle_atlas = assets
// 定时器控制逐帧播放
setInterval(()=>{
this.node.getComponent(cc.Sprite).spriteFrame = this.idle_atlas.getSpriteFrame(this.cur_idle_atlas_index.toString())
this.cur_idle_atlas_index += 1
this.cur_idle_atlas_index %= this.idle_atlas.getSpriteFrames().length
},this.idle_speed)
})

AudioSource

AudioSource

AudioSource是Cocos中用于控制音频的组件,

cc.AudioSource组件中提供一些API,用于音频的基本控制:

  • play() 从头开始播放
  • stop() 结束播放
  • pause() 暂停播放
  • resume() 从上次暂停处继续开始
  • isPlaying 是否在播放
全局音频

全局音频管理器

cocos2.x版本提供cc.audioEngine,进行全局音频控制,
其中提供多个声道:

  • playMusic 背景音乐
  • playEffect 音效
  • play 音频

cc.audioEngine在3.x版本中弃用,
官方推荐使用cc.AudioSource封装全局音频控制器

下面这段视频需要打开声音:


加入玩家飞机

  • 鼠标控制位置
    • 进行边界检测
  • 制作子弹预设件
    • 子弹前进
    • 出界删除
    • 添加碰撞
  • 玩家发射子弹
    • 定时器
    • 预加载子弹音效
  • 创建玩家碰撞盒

创建敌机预设件

  • 创建碰撞组件
  • 敌机脚本
    • 初始化位置(随机)
    • 向下移动
    • 边际检测
    • 被击中播放音效,播放死亡动画,销毁子弹
    • 碰撞玩家扣血/死亡
      • 结算画面
      • 结算音乐