手弹第一期总结

Posted by Cute Blog on December 27, 2019

12 Month

[toc]

贝塞尔曲线

需求描述:每次释放宠物技能的时候播放粒子特效,包含六个方向的匀速运动和贝塞尔曲线运动。

  1. 从对象缓存表里面取出六个缓存好的对象,(不够则创建)
  2. 设置方向
  3. 开始允许运动,即分别算出x和y轴上的增量进行每帧更新位置
  4. 运动一定时间之后开始贝塞尔曲线运动
  5. 首先根据4个点算出贝塞尔曲线,然后估算出曲线长度,从而算出来每帧运动几分之几
  6. 算出每帧的位置和角度更新球体

音频

接入音频:游戏中音频的接入使用的是WWise,关于声音的发出都是通过事件来驱动的。

在我们的游戏里面音频事件的函数传递都在AudioManager类里面,包含WWise的初始化以及事件的派发。

在WWise中,声音的发出需要告知它是那个gameobject发出声音。在我们的游戏中,都是设置为主摄像机,但是出现需要随着发声远近声音就跟着变化的时候,就需要自己设置更精准的发声的gameobject了。

我们的游戏声音主要包含在ui操作上的声音,所以这部分事件的派发写在UIExtendUtil类中,根据不同的ui操作事件,可以派发不同的事件,让程序发出不同的声音。

还有一个很需要发声的部分就是我们的特效部分,在我们的游戏中,几乎所有的动作都伴随着特效,所以我们在特效触发的时候派发发出声音的事件就可以了,这部分代码在fightEffectAction中。

还有一些其他的零散的声音触发需要具体问题具体分析,不能够同一配置的,就在对应的位置派发声音事件就可以了。

贝塞尔曲线详解

贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。

贝塞尔曲线有二阶函数,三阶函数,一直可以到n阶函数.

二阶贝塞尔:

![img](https://upload-images.jianshu.io/upload_images/5417430-0c59851cc48cadcd.gif?imageMogr2/auto-orient/strip imageView2/2/w/360/format/webp)

三阶贝塞尔:

![img](https://upload-images.jianshu.io/upload_images/5417430-baeb7db654850fc8.gif?imageMogr2/auto-orient/strip imageView2/2/w/360/format/webp)

一阶贝塞尔:

![img](https://upload-images.jianshu.io/upload_images/5417430-08d5a19e9b688b48.gif?imageMogr2/auto-orient/strip imageView2/2/w/360/format/webp)

公式一阶:img

公式二阶:img

公式三阶:在这里插入图片描述

长度的计算,在贝塞尔曲线上取n个点,来结算相邻两个点之间的距离,从而算出距离。

计算角度,结算这个点和(0,0)点的角度。