Cocos2d V3中的简单帧动画

时间:2016-12-10 02:27:26

标签: ios cocos2d-iphone cocos2d-x-3.0

我正在努力在Cocos2d V3中使用简单的动画。

我最初有一个用于精灵的简单静态png,使用这个代码,工作正常......

Sprite *treeStar = Sprite::create("star.png");
this->addChild(treeStar,+3);
treeStar->setPosition.... // set position is defined later

我添加了以下代码来尝试一个简单的动画,而不是静态精灵......

auto cache = SpriteFrameCache::getInstance();
Vector<SpriteFrame*> frames = Vector<SpriteFrame*>();
frames.pushBack(cache->getSpriteFrameByName("star1.png"));
frames.pushBack(cache->getSpriteFrameByName("star2.png"));
cocos2d::Animation* anim = cocos2d::Animation::createWithSpriteFrames(frames, 0.1f, 1);
cocos2d::Animate* anim_action = cocos2d::Animate::create(anim);
Sprite *treeStar = Sprite::create("star1.png");
this->addChild(treeStar,+3);
treeStar->runAction(RepeatForever::create(anim_action));
treeStar->setPosition.... // set position is defined later

但是这不起作用并导致我的应用程序崩溃。

任何人都可以帮助建议如何使这段代码正常工作,或者给我另一个适用于简单动画的代码示例吗?

1 个答案:

答案 0 :(得分:0)

检查此行:

Sprite *treeStar = Sprite::create("star1.png"); // crash due to image not found

方法create用于从单个图像创建精灵,而不是从精灵表创建精灵。在您的情况下,图像在精灵表中,将行更改为:

Sprite *treeStar = Sprite::createWithSpriteFrameName("star1.png");