cocos2dx动画Animation介绍(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-11-17 14:34 点击:

p>addChild(spritebatch);  

p> 

p> 

p>createWithSpriteFrameName 方法将会从grossini.plist中找到对应的坐标以及矩形区域,之后再裁剪grossini.png的纹理成一个精灵帧。

p> 

p> 

p>现在我们创建一个CCArray对象并且天剑所有的帧动画进去。在这个动画的例子中,我们发现所有的14帧都有相同的大小,所以我们可以用一个嵌套的循环遍历它们,并且当完成添加14帧之后结束掉循环。

p>[cpp]  

p>CCArray* animFrames = CCArray::createWithCapacity(15);  

p>char str[100] = {0};  

p>  

p>for(int i = 1; i < 15; i++)   

p>{  

p>    sprintf(str, "grossini_dance_%02d.png", i);  

p>    CCSpriteFrame* frame = cache->spriteFrameByName( str );  

p>    animFrames->addObject(frame);  

p>}  

p> 

p>最后,我们需要创建一个CCAnimate动作实例来运行CCSprite。下面我们可以在CCRepeatForever动作中包裹CCAnimate动作来让它一直执行下去,像这样:

p>[cpp]  

p>CCAnimation* animation = CCAnimation::createWithSpriteFrames(animFrames, 0.3f);  

p>m_pSprite1->runAction( CCRepeatForever::create( CCAnimate::create(animation) ) );  

p> 

p>四、文件动画

p>CCAnimateCache能够加载一个描述一批节点的xml/plist文件,包括帧名和他们的矩形区域。这个借口非常容易使用。

p>[cpp]  

p>CCAnimationCache *cache = CCAnimationCache::sharedAnimationCache(); // 缓存在cocos2dx中一直是单例模式  

p>cache->addAnimationsWithFile("animations/animations-2.plist");  

p>CCAnimation animation = cache->animationByName("dance_1");  

p>CCAnimate animate = CCAnimate::create(animation);  

p>sprite->runAction(animate);  

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
Copyright © 2004-2024 上海卓卓网络科技有限公司