大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!
理解上述代码非常重要,让我们一行一行的看一下:
属性列表包含在项目文件中,所以在app的”main bundle”里.这里是一个帮助方法取得属性文件在main bundle中全路径. 为了读取属性列表,可以方便的调用NSArray的一个方法arrayWithContentsOffile并且传递属性文件的路径.它将返回一个包含其内容的数组(在本例中,就是动画图片的名称字符串).注意这在我们将根元素设置为NSArray时才是有效地.如果我们设置为NSDictionary,我们应该使用[NSDicionary dictionaryWithContentsOffile…] 代替. 创建新的空数组去存放动画帧. 遍历属性列表中的每一个图片名称. 生成一个精灵帧并添加到数组中. 返回一个基于精灵帧数组的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中该方法也废弃了,你可以单独定义该属性.猫猪注.)
编译运行你的代码,现在当地鼠钻出的时候,它在向你嘲笑!
现在到了让这些欠扁的笑容消失的时候了!
总结以上是内存溢出为你收集整理的Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画全部内容,希望文章能够帮你解决Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)