来源于一般讨论分类疯狂ios讲义之cocos2d中的动画-创新互联
cocos2d中的动画在每一个游戏当中,都有很多各种各样的动画效果,比如街头霸王中的旋风腿,植物大战僵尸中豌豆的扭动、僵尸的走路、***动作等,虽然简单的移动动作也可以实现这些功能,但是这样看上去非常的笨拙和不真实。那么这些效果到底是如何实现的呢?其实很简单,我们只需要将一系列图片按照特定的顺序排列,然后在精灵对象上执行特定的动画动作就可以了。
1 cocos2d中动画相关的类
在cocos2d中实现动画,需要了解以下几个类。 q CCAnimate:该类为一种特殊的动作,也称为动画动作。 q CCAnimation:该类封装了一个精灵帧序列和各个精灵帧之间的延迟时间,作为精灵播放动画的参数。 q CCAnimationCache:该类是一个单例,作为一个缓存池来缓存CCAnimation动画。
2 简单动画效果
接下来我们通过示例演示在cocos2d中实现动画效果。在Xcdoe中使用cocos2d模板创建一个项目,命名为“AnimationTest”,加入准备好的图片资源,本例为8张植物大战僵尸中的僵尸图片,利用这些单独的图片创建动画,完成一个僵尸走路的动画效果。实现代码如下。
程序清单:codes/13/13.11/AnimationTest/AnimationTest/HelloWorldLayer.m
-(id) init
{
if( (self=[super init]) ) {
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCSprite* bgSprite = [CCSprite spriteWithFile:@"gamebg.png"];
bgSprite.position = ccp(winSize.width/2,winSize.height/2);
[self addChild:bgSprite];
// 创建僵尸精灵,并设置坐标位置在屏幕之外
CCSprite* zSprite = [CCSprite spriteWithFile:@"z_00_01.png"];
zSprite.position = ccp(winSize.width+zSprite.contentSize.width/2,winSize.height/2);
[self addChild:zSprite];
// 创建CCAnimation动画,指定动画帧的内容
CCAnimation* anim = [CCAnimation animation];
[anim addSpriteFrameWithFilename:@"z_00_01.png"];
[anim addSpriteFrameWithFilename:@"z_00_02.png"];
[anim addSpriteFrameWithFilename:@"z_00_03.png"];
[anim addSpriteFrameWithFilename:@"z_00_04.png"];
[anim addSpriteFrameWithFilename:@"z_00_05.png"];
[anim addSpriteFrameWithFilename:@"z_00_06.png"];
[anim addSpriteFrameWithFilename:@"z_00_07.png"];
[anim addSpriteFrameWithFilename:@"z_00_08.png"];
// 创建animAction动画,restoreOriginalFrame:YES
// 可以让精灵对象在动画执行完后恢复到最初状态
id animAction = [CCAnimate actionWithDuration:1.5f animation:anim
restoreOriginalFrame:YES];
// 定义一个动作,重复执行CCAnimate动画
id repeatanimAction = [CCRepeatForever actionWithAction:animAction];
// 定义一个动作,让精灵对象移动到特定的位置
id moveTo = [CCMoveTo actionWithDuration:10.0f
position:ccp(-zSprite.contentSize.width/2,winSize.height/2)];
// 僵尸精灵重复执行动画动作和移动动作
[zSprite runAction:repeatanimAction];
[zSprite runAction:moveTo];
}
return self;
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:来源于一般讨论分类疯狂ios讲义之cocos2d中的动画-创新互联
标题网址:http://scyanting.com/article/ecgse.html