美文网首页
队列处理技能的播放

队列处理技能的播放

作者: cui_512e | 来源:发表于2017-10-26 19:38 被阅读0次

       学完栈和队列虽然实现过自定义的队列和栈,可是还是容易忘记,我总觉得多使用才能有深刻的记忆。

         今天做的这道题目。

    题目

    三连击? 于是我开始尝试做...

    设想1:是这样的 定义一个状态的枚举(释放技能的时候判断当前的状态 和是否正在播放技能动画)

    用户点击攻击后 ->  开启协成(攻击)->根据技能的名字播放对饮的动画 -> 等待动画播放完成。

    public enum AttackState// 攻击的状态

    { normal, attack1,attack2,attack3}

    然后在update中判断用户的点击然后根据当前的状态来改变运行对应的协程(因为要等待技能播放的时间完成才能播放下一个)

    状态的控制切换 动画播放的协同程序

    可是做完后发现每次攻击要等待动画播放完成才能进行下一次攻击,用户体验很不好啊,我如果想要用户连续点击三下(然后一个一个自动播放技能呢),这个时候我想到了队列,队列先进先出嘛。

    设想2:还是定义当前状态的枚举,

    用户点击攻击后 ->  队列里添加下一个状态的枚举(比如当前状态是闲置状态下一个状态就是攻击1) ->根据队列里是否有要播放的技能来播放技能 ->技能的名字播放对饮的动画 -> 等待动画播放完成。

    将下一个状态入队列 在队列里依次处理播放对应动画的协成 播放技能动画的协同程序

    这里注意当要播放的动画名字是第三个动画的时候,就让他的状态转换成正常状态、技能进入Cd状态(用户不能点击三次后,要等待cd时间冷却好才能再次使用技能)

    Inspector面板上填好对应的参数(对应技能的动画名字、动画的长度也就是时间)

    这里因为动画的速度比较慢我想让他变的快一点(默认是1),这样效果比较好一点。速度修改了对应的动画长度也要除以这个速度。

    然后做点UI可以看出效果。

    相关文章

      网友评论

          本文标题:队列处理技能的播放

          本文链接:https://www.haomeiwen.com/subject/ucjkpxtx.html