• 《CSOL大灾变》Mobile开发记录——武器音效部分


      在前端时间开发了武器系统的大部分逻辑,从武器购买界面,武器购买逻辑到游戏逻辑(拾起和丢弃武器)等都开发得差不多了。剩下的仅仅只是增加武器数据(模型,动画和音效,特效等等),然后用统一脚本逻辑定义载入游戏中,不需要再大概底层代码了。

      这次记录下武器音效部分,在一个游戏中,一个交互动作往往包含很多部分,比如一个挥刀的动作由“挥刀动画”+“挥刀音效”+“挥刀逻辑”+“挥刀碰撞检测”。这涉及到游戏引擎中各个子引擎模块的调度和协调(比如动画系统,渲染系统,输入系统,音效系统,物理碰撞系统)。

      在这次CSOL大灾变移植中,我使用jMonkey引擎提供的AudioTrack(由于默认的AudioTrack功能有限,所以我自己写了一个),然后通过动画Track附加到指定动画的某个时间点上,这样,不需要写代码,即可完成对所有模型在编辑器上进行统一音效附加。

      如下:

      首先,添加AudioNode节点,并将音效数据设置好,接着,找到要附加的动画,然后右键Add AudioTrack,指定附加时间点(可随时调整),如下:

      但是这样有一个问题,比如我们播放一个动画,默认的AudioNode内部通过监听动画播放完成和时间累加计算来调度音效,这样有一个问题就是:如果我们正在播放挥刀动画,然后过了0.1秒又立刻播放一次新的挥刀动画而不是等待当前挥刀结束后再播放。这样就会因为是同一个动画的原因,导致时间累加始终没有结束,导致只能出现第一次的音效而没有后续的挥刀音效,为了完成这一点,我们自定义一个AudioTrack。然后使用自定义的AudioTrack进行附加即可。

  • 相关阅读:
    java转换CSV文件生成xml格式数据
    HTTP的Form数据的结构
    使用Filter实现静态HTML缓冲(一种折中方法)
    webwork的interceptor来实现ajax功能(buffalo)
    Delphi中DLL的编写和调用(例子)
    用C#实现BHO(Brower Helper Object)
    基于Delphi的VFW视频捕获程序的开发
    关于WebWork2中的中文问题
    tomcat中的几点配置说明
    用Sitemesh控制页面布局
  • 原文地址:https://www.cnblogs.com/JhonKkk/p/14317764.html
Copyright © 2020-2023  润新知