来源于一般讨论分类疯狂ios讲义之cocos2d中的动画-创新互联

cocos2d中的动画在每一个游戏当中,都有很多各种各样的动画效果,比如街头霸王中的旋风腿,植物大战僵尸中豌豆的扭动、僵尸的走路、***动作等,虽然简单的移动动作也可以实现这些功能,但是这样看上去非常的笨拙和不真实。那么这些效果到底是如何实现的呢?其实很简单,我们只需要将一系列图片按照特定的顺序排列,然后在精灵对象上执行特定的动画动作就可以了。
1  cocos2d中动画相关的类
在cocos2d中实现动画,需要了解以下几个类。
   q    CCAnimate:该类为一种特殊的动作,也称为动画动作。
   q    CCAnimation:该类封装了一个精灵帧序列和各个精灵帧之间的延迟时间,作为精灵播放动画的参数。
   q    CCAnimationCache:该类是一个单例,作为一个缓存池来缓存CCAnimation动画。
2  简单动画效果
接下来我们通过示例演示在cocos2d中实现动画效果。在Xcdoe中使用cocos2d模板创建一个项目,命名为“AnimationTest”,加入准备好的图片资源,本例为8张植物大战僵尸中的僵尸图片,利用这些单独的图片创建动画,完成一个僵尸走路的动画效果。实现代码如下。

10年积累的网站制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有龙口免费网站建设让你可以放心的选择与我们合作。

程序清单:codes/13/13.11/AnimationTest/AnimationTest/HelloWorldLayer.m

  1. -(id) init

  2. {

  3.   if( (self=[super init]) ) {

  4.     CGSize winSize = [[CCDirector sharedDirector] winSize];

  5.     CCSprite* bgSprite = [CCSprite spriteWithFile:@"gamebg.png"];

  6.     bgSprite.position = ccp(winSize.width/2,winSize.height/2);

  7.     [self addChild:bgSprite];

  8.     // 创建僵尸精灵,并设置坐标位置在屏幕之外

  9.     CCSprite* zSprite = [CCSprite spriteWithFile:@"z_00_01.png"];

  10.     zSprite.position = ccp(winSize.width+zSprite.contentSize.width/2,winSize.height/2);

  11.     [self addChild:zSprite];

  12.     // 创建CCAnimation动画,指定动画帧的内容

  13.     CCAnimation* anim = [CCAnimation animation];

  14.     [anim addSpriteFrameWithFilename:@"z_00_01.png"];

  15.     [anim addSpriteFrameWithFilename:@"z_00_02.png"];

  16.     [anim addSpriteFrameWithFilename:@"z_00_03.png"];

  17.     [anim addSpriteFrameWithFilename:@"z_00_04.png"];

  18.     [anim addSpriteFrameWithFilename:@"z_00_05.png"];

  19.     [anim addSpriteFrameWithFilename:@"z_00_06.png"];

  20.     [anim addSpriteFrameWithFilename:@"z_00_07.png"];

  21.     [anim addSpriteFrameWithFilename:@"z_00_08.png"];

  22.     // 创建animAction动画,restoreOriginalFrame:YES

  23.     // 可以让精灵对象在动画执行完后恢复到最初状态

  24.     id animAction = [CCAnimate actionWithDuration:1.5f animation:anim

  25.       restoreOriginalFrame:YES];

  26.     // 定义一个动作,重复执行CCAnimate动画

  27.     id repeatanimAction = [CCRepeatForever actionWithAction:animAction];

  28.     // 定义一个动作,让精灵对象移动到特定的位置

  29.     id moveTo = [CCMoveTo actionWithDuration:10.0f

  30.       position:ccp(-zSprite.contentSize.width/2,winSize.height/2)];

  31.     // 僵尸精灵重复执行动画动作和移动动作

  32.     [zSprite runAction:repeatanimAction];

  33.     [zSprite runAction:moveTo];

  34.   }

  35.   return self;

  36. }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:来源于一般讨论分类疯狂ios讲义之cocos2d中的动画-创新互联
标题网址:http://scyanting.com/article/ecgse.html