2016-12-10 141 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");