用spine做了一些简单UI动画,结果发现游戏用的cocos2dx版本太低了,无法集成spineRunTime,无奈只好把spine记下的关键帧数据抄到一个txt文件中,然后读取txt,再自己写代码播放动画。
由于这些UI动画都比较简单,未涉及多级骨骼,所以写起来比较容易,基本能完全还原spine中的效果。
需要注意的两点是:
1,应直接模仿spine编辑器中的结构来定义数据结构,定义每个元件为一个Cbone,Cbone上加一个Cslot,Cslot上可以加图片。从spine的animate模式中抄下来的关键帧数据作用在Cbone上(不过其中的color数据应作用在Cslot上),从spine的setup模式中抄下来的slot数据作用在Cslot上。即不要忽略了setup模式下的slot数据,否则动画各元件会发生错位。
2,spine中如果某个slot勾选了additive,则我们应将其blendFunc解析为(GL_ONE,GL_ONE),而不要用(GL_SRC_ALPHA,GL_ONE)。虽然印象里后一种才是标准的additive,但经过实验,发现用(GL_ONE,GL_ONE)能跟spine编辑器中的效果完全对上。