【问题标题】:Can't load plist animation in cocos2d "No animations were found"cocos2d无法加载plist动画“未找到动画”
【发布时间】:2016-01-22 16:36:47
【问题描述】:

我是 cocos2dx 的新手,我在 Windows 上有一个使用 cocos2dx 3.9 的 C++ 项目,我正在引用此页面 http://www.cocos2d-x.org/wiki/Sprite_Sheet_Animation 中的 文件动画 示例;我无法让 plist 加载动画。

当我尝试加载 plist 时:

自动缓存 = AnimationCache::getInstance();
缓存->addAnimationsWithFile("explosion.plist");

日志显示:

cocos2d: AnimationCache: 在提供的字典中没有找到动画。

我错过了什么?

另外,我不确定在示例中使用什么代替 "dance_1"。仅仅是第一个动画帧关键吗?

http://pastebin.com/kZpcCEgp

【问题讨论】:

    标签: animation cocos2d-x sprite


    【解决方案1】:

    您使用的上述精灵表没有扩展名 .png 在所有文件中。您可以从纹理创建一个新的精灵表 打包机。

    要获取示例 spritesheet,首先转到 `~your-cocos-directory/cocos2d-x-3.9/tests/cpp-tests/Resources/zwoptex/ 并将 Grossini.plist 和 Grossini.png 复制到您的资源文件夹。 Sample plist Link

    现在从 spritesheet 运行帧动画,然后首先使用以下命令添加帧:

    SpriteFrameCache::getInstance()->addSpriteFramesWithFile("grossini.plist");
    

    现在在动画缓存中添加帧:

    Vector<SpriteFrame*> animFrames(15);
    char str[100] = {0};
    for(int i = 1; i < 15; i++)
    {
        sprintf(str, "grossini_dance_%02d.png",i);
        auto frame = SpriteFrame::create(str,Rect(0,0,40,40)); //we assume that the sprites' dimentions are 40*40 rectangles.
        animFrames.pushBack(frame);
    }
    

    现在运行动画

    auto animation = Animation::createWithSpriteFrames(animFrames, 0.2f);
    auto animate = Animate::create(animation);
    sprite->runAction(animate);
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多