我正在努力在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 :(得分:0)
检查此行:
Sprite *treeStar = Sprite::create("star1.png"); // crash due to image not found
方法create
用于从单个图像创建精灵,而不是从精灵表创建精灵。在您的情况下,图像在精灵表中,将行更改为:
Sprite *treeStar = Sprite::createWithSpriteFrameName("star1.png");