我所理解的Cocos2d-x(三) 动画系统

一、动画执行阶段

图中可知,游戏中所有动画的执行仅次于用户输入的处理。所有动画通过一个Schedule完成,且所有动画在一起执行。但与其他Schedule不同的是,动画系统需要被指定为一个特殊的优先级:PRIORITY_SYSTEM。动画系统在注册顺序上早于任何应用程序注册的Schedule,以此来保证动画系统始终被优先执行。

二、动画系统的基础 - 线性插值

主要分为标量、矢量和变换矩阵。

三、复杂动画

游戏中一个复杂的游戏对象就是最终呈现给玩家的的一个角色。这类动画基于游戏引擎的基础绘制设施来构建,称之为高阶的动画系统。例如在Cocos2d-x中支持的Spine和DragonBone骨骼动画。

四、元素节点动画

一个Action就是一个对象,它定义了一个修改,并将修改作用于一个node元素上。

一个Action对象只接受一个node目标元素,所以只能作用于单个元素之上。

详情查看 https://blog.csdn.net/qq_22337119/article/details/103028186

五、动画系统架构

所有的Action都是通过ActionManager来管理和执行的。

ActionManager向Schedule注册一个最高优先级的更新回调,然后ActionManager在每一帧更新每个Action实例的动画进度。

为了更好的统一管理Action的时间线,例如加快动画执行速度,线性插值等,ActionManager实际上并不直接调用Action的update方法,而是中间多了一个step的步骤来控制时间线,step向update输出一个0~1的动画进度,而Action只需要关心对两个端值内的一个点进行差值计算,step决定了动画执行时间的长短。

如下图所示:

这种动画架构能够很好的控制动画的进度。例如speed内部重写了step方法,来实现对动画播放速度的控制。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值