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);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>