cocos2d-x学习笔记-帧动画

我们首先用TP将我们的资源图片压缩成一个大图片(包含plist和png文件),然后就把这张大图的这两个文件包含在我们的程序文件里,这样我们就可以做有意思的动画了。

现在介绍一些相关类:

为了方便地记录纹理的显示信息,Cocos2d-x提供了框帧类CCSpriteFrame。一个框帧包含两个属性,纹理与区域。纹理指的是将要被显示的纹理,而区域指的是此纹理将要被显示的部分。一个框帧可以完整地描述精灵显示的内容,因此在动画中,我们使用框帧来表示每一帧的内容。

   用CCAnimation描述一个动画,而精灵显示动画的动作则是一个CCAnimate对象。动画动作CCAnimate是精灵显示动画的动作,它由一个动画对象创建,并由精灵执行。

代码: 

                  CCSize winSize = CCDirector::sharedDirector()->getWinSize();

		CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
		char strPlist[64] = {0};
		char strPng[64] = {0};
		sprintf(strPlist,"spritesheet.plist");
		sprintf(strPng,"spritesheet.png");
		cache->addSpriteFramesWithFile(strPlist,strPng);

		CCArray* animFrames = CCArray::array();
		animFrames->initWithCapacity(8); 

		char str[64] = {0};

		CCSprite* sprite = CCSprite::create("bear1.png");

		sprite->setTag(1);

		sprite->setPosition(ccp(winSize.width/2,winSize.height/2));

		this->addChild(sprite);

                  for(int i = 1; i <= 8; i++)
		{
			sprintf(str, "bear%d.png",i);
			CCSpriteFrame* frame = cache->spriteFrameByName( str );
			animFrames->addObject(frame);
		}

		CCAnimation* animation = CCAnimation::animationWithSpriteFrames(animFrames,0.1f);

		CCRepeatForever* walkAction=CCRepeatForever::actionWithAction( CCAnimate::actionWithAnimation(animation)); 
		
		sprite ->runAction(walkAction);

		animFrames->release();  

		


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值