在前面的章节中你已经学习了如何使用SpriteBuilder的时间轴功能建立动画了。接下来,你将学习如何为一个精灵(Sprite)文件添加动画。咱们将给正在等待成为子弹的企鹅建立动画效果。node
在右边传送门下载咱们准备的资源包:资源包传送门。框架
将其解压缩并拖动动画文件夹到您SpriteBuilder项目中。经过右键— Make Smart Sprite Sheet将资源设置为智能精灵表。点击发布按钮,这样SpriteBuilder会为您的精灵表生成纹理。dom
建立一个新的接口文件学习
接下来,在SpriteBuilder中建立一个新的接口文件。称之为WaitingPenguin.ccb并选择Sprite做为根节点。一旦建立了文件,打开它,而后选择第一个动画帧做为新的精灵(默认框架animation/1.png):优化
SpriteBuilder提供创建基于帧动画的简单方法:动画
选择您想要进行动画应用的精灵ui
从资源窗格(左)选择全部相关的图像spa
所选图像右击并选择“Create Keyframes from Selection”.net
根据帧的数量,你将不得不等待几秒钟。而后SpriteBuilder将全部图像添加到您的时间表。下面是一个简单的演练:code
如今你有一个带动画的企鹅了!接下来,让咱们来减小时间轴的长度。设置动画是约4秒。您还须要连接时间轴自己,从而使企鹅闪烁,跳跃在一个无限循环:
如今在加入等待企鹅到以前发布SpriteBuilder项目的游戏场景。
拖动WaitingPenguin.ccb到Gameplay.ccb添加三个等待企鹅。确保等待企鹅是内容节点的子节点(不然他们不会与滚动出场景):
如今,发布和运行游戏。你应该看到三个企鹅闪烁和跳跃旁边的投石车:
动画看起来还不错-但奇怪的是全部企鹅的动画在彻底相同的时刻执行。这是由于咱们的时间轴已经启动了自动播放,这意味着动画只要物体进入画面就会开始播放。咱们要改变这种情况,经过触发代码中动画的开始操做,而不是使用时间轴的自动播放的设置。
将默认的时间轴重命名为BlinkAndJump并关闭自动播放:
还要设置自定义类为WaitingPenguin,这样咱们就能够经过添加代码来手动启动动画:
如今,发布您的项目并打开Xcode!
建立一个CCSprite类的子类并命名为WaitingPenguin。
如今,咱们要实现didLoadCCB方法,其中将要产生一个随机数,将决定咱们要多长时间后启动动画:
- (void)didLoadFromCCB { // generate a random number between 0.0 and 2.0 float delay = (arc4random() % 2000) / 1000.f; // call method to start animation after random delay [self performSelector:@selector(startBlinkAndJump) withObject:nil afterDelay:delay]; }
以后,咱们只须要实现这个方法来启动动画:
- (void)startBlinkAndJump { // the animation manager of each node is stored in the 'userObject' property CCBAnimationManager* animationManager = self.userObject; // timelines can be referenced and run by name [animationManager runAnimationsForSequenceNamed:@"BlinkAndJump"]; }
每一个时间轴能够经过它的名称来启动引用。如今,构建并再次运行该项目:
这样咱们的游戏看起来就更生动了吧~好的,精灵的动画就这样制做完成了!
原文:
在下一节也是咱们的最后一节中,咱们将讲一些关于细节上的优化,由此来结束咱们的教程!转载请说明出处,wealpan将和您一块儿学习Spritebuilder!谢谢你们!