Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画

前端之家收集整理的这篇文章主要介绍了Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

理解上述代码非常重要,让我们一行一行的看一下:

  1. 属性列表包含在项目文件中,所以在app的”main bundle”里.这里是一个帮助方法取得属性文件在main bundle中全路径.
  2. 为了读取属性列表,可以方便的调用NSArray的一个方法arrayWithContentsOfFile并且传递属性文件的路径.它将返回一个包含其内容的数组(在本例中,就是动画图片名称字符串).注意这在我们将根元素设置为NSArray时才是有效地.如果我们设置为NSDictionary,我们应该使用[NSDicionary dictionaryWithContentsOfFile…] 代替.
  3. 创建新的空数组去存放动画帧.
  4. 遍历属性列表中的每一个图片名称.
  5. 生成一个精灵帧并添加到数组中.
  6. 返回一个基于精灵帧数组的CCAnimation对象.

接下来,在你的init方法最后为每个动画添加调用方法代码:

laughAnim = [self animationFromPlist:@"laughAnim" delay:0.1];        
hitAnim = [self animationFromPlist:@"hitAnim" delay:0.02];
[[CCAnimationCache sharedAnimationCache] addAnimation:laughAnim name:@"laughAnim"];
[[CCAnimationCache sharedAnimationCache] addAnimation:hitAnim name:@"hitAnim"];

注意在引用一个动画之后,将其加入到动画缓存中(在新版本的cocos2D中已经没有CCAnimationCache类了,所以后面就不翻译了. 猫猪注).

在最后一步 — 让我们使用(现在只用微笑动画).修改popMole方法如下:

- (void) popMole:(CCSprite *)mole {          
    CCMoveBy *moveUp = [CCMoveBy actionWithDuration:0.2 position:ccp(0,mole.contentSize.height)];
    CCEaseInOut *easeMoveUp = [CCEaseInOut actionWithAction:moveUp rate:3.0];
    CCAction *easeMoveDown = [easeMoveUp reverse];
    CCAnimate *laugh = [CCAnimate actionWithAnimation:laughAnim restoreOriginalFrame:YES];

    [mole runAction:[CCSequence actions:easeMoveUp,laugh,easeMoveDown,nil]];      
}

不同之处仅在于用CCanimate动作代替了那一点点延时.CCAnimate(在新版本的Cocos2D中没有该类,作为代替可以使用CCActionAnimate. 猫猪注)使用之前制作的微笑动画,然后设置resotreOriginalFrame为YES以便动画完成时恢复普通的地鼠面容.(新版的cocos2d中该方法也废弃了,你可以单独定义该属性.猫猪注.)

编译运行你的代码,现在当地鼠钻出的时候,它在向你嘲笑!

现在到了让这些欠扁的笑容消失的时候了!

原文链接:https://www.f2er.com/cocos2dx/340674.html

猜你在找的Cocos2d-x相关文章