代码改变世界

【Stage3D学习笔记续】山寨Starling(六):动画实现和测试

2014-11-18 16:28  阿诚de窝  阅读(345)  评论(0)    收藏  举报

我发布了一个版本v0.2,该版本是未优化版本,且没有添加Touch事件体系,但是由于是最基础且未优化的,所以可以通过参考代码快速的了解实现原理。

接下来的一段笔记开始进行渲染优化,我会把所有的目光都集中到渲染的优化之上。

点击下载:https://codeload.github.com/hammerc/hammerc-study-Stage3D/zip/v0.2

先看看Demo(特别说明:我使用了Whack的素材,Whack游戏开源地址:https://github.com/byxb/whack):

代码

 

动画实现比较简单,Starling中创建了一个动画循环管理类Juggler,该类在Starling类中进行实例化,每帧都会调用advanceTime方法来循环遍历添加到其内部的动画对象的advanceTime方法实现每个动画对象自身的逻辑。

IAnimatable接口定义了动画对象,所有需要添加到Juggler的类都需要实现该接口。

MovieClip类实现了IAnimatable接口,其内部管理多个Texture2D对象,每次执行advanceTime方法时会根据时间计算出当前应该显示的纹理用于显示,实现动画播放。

Tween类也实现了IAnimatable接口,但是其是用来实现缓动效果的。

新创建的MovieClip类需要添加到Starling.current.juggler对象中才会实现动画播放哦。