位置: 编程技术 - 正文

Cocos2d-JS使用CocosDenshion引擎(cocos jsc)

编辑:rootadmin
Cocos2d-JS提供了一个音频CocosDenshion引擎。具体使用的API是cc.AudioEngine。cc.AudioEngine有几个常用的函数:playMusic(url, loop)。播放背景音乐,参数url是播放文件的路径,参数loop控制是否循环播放,缺省情况下false。stopMusic()。停止播放背景音乐。pauseMusic()。暂停播放背景音乐。resumeMusic ()。继续播放背景音乐。isMusicPlaying()。判断背景音乐是否在播放。playEffect (url, loop)。播放音效,参数同playMusic函数。pauseEffect(audioID)。暂停播放音效,参数audioID是playEffect函数返回ID。pauseAllEffects ()。暂停所有播放音效。resumeEffect (audioID)。继续播放音效,参数audioID是playEffect函数返回ID。resumeAllEffects ()。继续播放所有音效。stopEffect(audioID)。停止播放音效,参数audioID是playEffect函数返回ID。stopAllEffects ()。停止所有播放音效。音频文件的预处理无论是播放背景音乐还是音效在播放之前进行预处理是有必要的。如果不进预处理,则会发现在第一次播放这个音频文件时候感觉很“卡”,用户体验不好。Cocos2d-JS中提供了资源文件的预处理功能。通过模板生成的Cocos2d-JS工程中有一个main.js,它的内容如下:其中cc.LoaderScene.preload函数可以预处理一些资源,其中g_resources是资源文件集合变量,它是在resource.js文件中定义的,resource.js文件的内容如下:}上述代码第③行定义了资源集合变量g_resources,其中的第④行的for循环是将背景音乐资源文件添加到g_resources资源集合变量中。注意为了防止硬编码,我们需要在res变量中添加资源别名的声明见代码第①行和第②行。通过的上述设置游戏应用在运行的时候加载所有资源文件,包括图片、声音、属性列表文件(plist)、字体文件(fnt)、瓦片地图文件(tmx)等。播放背景音乐背景音乐的播放与停止实例代码如下:其中cc.audioEngine是cc.AudioEngine类创建的对象。背景音乐的播放代码放置到什么地方比较适合呢?例如:在Setting场景中,主要代码如下:关于播放背景音乐,理论上我们是可以将播放代码cc.audioEngine.playMusic(res.bgMusicSynth_mp3, true)放置到三个位置(代码中的①、②、③)。下面我们分别分析一下它们还有什么不同。1、代码放到第①行代码放到第①行(即在ctor构造函数),如果前面场景中没有调用背景音乐停止语句,则可以正常播放背景音乐。但是如果前面场景层HelloWorldLayer onExit函数有调用背景音乐停止语句,那么会出现背景音乐播放几秒钟后停止。为了解释这个现象,我们可以参考一下多场景切换生命周期的相关内容。使用pushScene函数从实现HelloWorld场景进入Setting场景,生命周期函数调用顺序如下图所示。生命周期事件顺序从图中可见,HelloWorldLayer onExit调用是在SettingLayer init(ctor构造函数)之后,这样当我们在SettingLayer init中开始播放背景音乐后,过一会调用HelloWorldLayer onExit停止背景音乐播放,这样问题就出现了。注意 无论播放和停止的是否是同一个文件,都会出现个问题。2、代码放到第②行代码放到第②行(即在SettingLayer onEnter函数),如果前面场景中没有调用背景音乐停止语句,则可以正常播放背景音乐。如果前面的场景层HelloWorldLayer onExit函数有背景音乐停止语句,也会出现背景音乐播放几秒钟后停止。原因与代码放到第①行情况一样。3、代码放到第③行我们推荐代码放到第③行代码位置,因为onEnterTransitionDidFinish函数是在进入层而且过渡动画结束时候调用,代码放到这里不用考虑中前面场景是否有调用背景音乐停止语句。而且用户也不会先听到声音,后出现界面现象。综上所述,是否能够成功播放背景音乐,前面场景是否有调用背景音乐停止语句有关,也与当前场景中播放代码在哪个函数里有关。如果前面场景没有调用背景音乐停止语句,问题也就简单了,我们可以将播放代码放置在代码①、②、③任何一处。但是如果前面场景调用背景音乐停止语句,在onEnterTransitionDidFinish函数播放背景音乐会更好一些。停止播放背景音乐停止背景音乐播放代码放置到什么地方比较适合呢?例如:在HelloWorld场景中,主要代码如下:关于停止背景音乐播放,理论上我们是可以将停止播放代码cc.audioEngine.stopMusic(res.bgMusicSynth_mp3)放置到两个位置(代码中的①和②)。下面我们分别分析一下它们还有什么不同。1、代码放到第①行代码放到第①行(即在HelloWorldLayer onExit函数),如果后面场景中调用背景音乐播放,则可能导致播放背景音乐异常,但是如果在后面场景的onEnterTransitionDidFinish函数中播放背景音乐就不会有异常了。关于这个问题我们在前一节以及介绍过了。2、代码放到第②行

推荐整理分享Cocos2d-JS使用CocosDenshion引擎(cocos jsc),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos creator js教程,cocos js,cocos js,cocos2dx-js,cocos2d怎么用,cocos jsc,cocos2dx-js,cocos js,内容如对您有帮助,希望把文章链接给更多的朋友!

代码放到第②行(即在HelloWorldLayer onExitTransitionDidStart函数),从图9-1可见,HelloWorldLayer onExitTransitionDidStart函数第一个被执行,如果我们的停止播放代码放在这里,不会对其它场景的背景音乐播放产生影响。我们推荐停止播放代码放在这里。

Cocos2d-JS使用CocosDenshion引擎(cocos jsc)

更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发》本书交流讨论网站: JS卷》现已上线,各大商店均已开售:

京东:

铁嘴李的Cocos2dx之旅之removeSelf与remove的区别 removeself可以说是一个Action,用来实现一个动作自动删除的。如:一个小星星从左边moveto到右边去,接一个removeself,自动从父节点删除。removechild是从父

铁嘴李的Cocos2dx之旅之schedule用法 schedule是一个定时器,可以让一个动作每隔几秒钟执行1次,scheduleonce是一个定时器,去掉once则是多个定时器。先在.h文件中定义一个方法带有一个参数

cocos2d2.x中的CCRect CCRect在引擎中是一个经常被用到的属性,用的比较多的地方就是boundingbox,有的时候对于CCRect的具体实现不明白,使用的时候就会有错误。CCRect有两个属

标签: cocos jsc

本文链接地址:https://www.jiuchutong.com/biancheng/369073.html 转载请保留说明!

上一篇:铁嘴李的Cocos2dx之旅之如何实现一个序列动画和图片切换(铁嘴的故事)

下一篇:铁嘴李的Cocos2dx之旅之removeSelf与remove的区别(铁嘴下山全文免费阅读)

  • 委托加工应税消费品代扣代缴
  • 总公司是小规模分公司是一般纳税人
  • 印花税是用来干吗的
  • 工程施工的材料购进计入哪里
  • 已交增值税如何做账
  • 代开专票上的税额比电子缴款凭证上的税额少怎么调整
  • 分公司注销需要总公司法人实名确认吗
  • 企业注销库存怎么做账
  • 小微企业增值税优惠政策最新2023
  • 利用废旧物资生产设备
  • 长期股权投资的4个明细科目
  • 增值税包括哪些税种
  • 跨月收入账务处理
  • 独资企业要交税吗
  • 公司土地和厂房可以按折价卖结股东权益吗
  • 公司借股东钱支付的利息如何做账?
  • 报销数字证书续费作财务凭证怎么做?
  • 公司注册成功以后会有什么费用
  • 金税盘维护费抵税会计分录
  • 个体户进货需要发票吗?
  • 小微企业企业税率表
  • 本期认证本期不抵扣下月再抵扣
  • 零申报的企业年末的利润表可以为零吗?
  • 在建工程预估转入固定资产怎么做凭证
  • 融资租入固定资产改建支出计入
  • 简易计税的方式
  • 未形成固定资产的项目卖出怎么入账
  • 税会差异分为哪几类
  • php7.3
  • 新公司成立股份比例
  • php 读取文本文件
  • 企业所得税具体纳税筹划案例
  • 鹤望兰的养殖方法和注意事项浇水
  • 外贸企业申报出口退税的期限
  • 设计公司的设计提成方案
  • 贝尔纳贝
  • react中路由有哪些常用组件
  • cnn卷积神经网络python代码
  • php 编码
  • 固定资产的销售怎么做账
  • phpcms默认密码
  • 税务清单和发票清单是一样吗
  • 小微企业能申请留抵退税吗?
  • 新个税累计预扣怎么算
  • 发票6个点怎么算收税点
  • phpcms怎么样
  • 累计净值是怎么计算的
  • sqlserver2019配置
  • 差旅费中火车票的进项税怎么计算
  • 成本类科目在哪里列式
  • 银行定期存款取一部分怎么算利息
  • 预付工程款该怎么记账
  • 发票什么情况下可以作废
  • 长期股权投资收回账务处理
  • 取得无形资产发生的相关费用
  • 折扣方式销售如何确定销售额?
  • 季节性停工固定资产折旧计入什么科目
  • 未分配利润核销不良贷款
  • 其他业务收入的现金流量项目
  • 员工垫付公司费用
  • 出售固定资产属于什么收入
  • mysql无法创建函数
  • linux安装过程中的硬盘分区
  • win7电脑开机自启动管理在哪里
  • win7系统的word文档中的工具在哪里
  • 电脑微软拼音输入法
  • js模拟登录网站
  • android知识
  • vue配置api
  • js实现时间
  • php操作dom
  • python自定义min_self函数
  • java教程
  • python中遍历
  • 国家税务系统电子税务局电话
  • 什么是委托代征专用账户管理
  • 个体户一直没有年报
  • 如何电子税务局缴纳社保费用
  • 住房公积金交纳的原则
  • 轮胎消费税的征收环节
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设