2016-12-10 188 views
0

我很努力地在Cocos2d V3中获得简单的动画。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 

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

任何人都可以帮助建议如何让这段代码工作,或给我另一个代码示例,将工作的简单动画?

回答

0

检查这一行:

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

方法create用于从单独的图像不是从精灵表创建一个子画面。在你的情况下,图像在精灵表中,将该行更改为:

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