【问题标题】:Simple frame animation in Cocos2d V3Cocos2d V3中的简单帧动画
【发布时间】:2016-12-10 02:27:25
【问题描述】:

我正在努力让一个简单的动画在 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

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

谁能帮助建议如何让这段代码工作,或者给我另一个适用于简单动画的代码示例?

【问题讨论】:

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


    【解决方案1】:

    检查这一行:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 2014-03-17
      • 2014-06-02
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      相关资源
      最近更新 更多