I would like to know how people usually save the animations in order to load them easily in Cocos2d with as few hard-code as possible.

E.G. The solution I thought of is to have one plist file containing information about each frame, and the second plist to contain information about each of the animation(name of the animation, which frames to play, and the delay probably).

If this is the correct solution, how can I generate such plist files for spritesheet automatically?


1 Answer 1


This is the most basic code of creating and playing an animation in cocos2d:

auto cacher = SpriteFrameCache::getInstance();
Sprite* someSprite = Sprite::create();

// load all the animation frames into an array
Vector<SpriteFrame*> frames;
for (int i = 0; i <= 10; i++)
    stringstream ss;
    ss << "run_" << i << ".png";

// play the animation
Animation* anim = Animation::createWithSpriteFrames(frames, 0.05f);
someSprite->setPosition(X, Y);


And for creating some file like "emad-running.plist", I suggest Texture Packer. This tool support cocos2d fully. you can import your separated image, and Texture Packer give you two file:

  1. "emad-running.plist"
  2. "emad-running.pvr" OR "emad-running.png" OR ...

This two file complete each other and in code you just need to refer.plist and you are done. :)

This is how you do in TexturePacker:

Texture Packer Instruction
(source: raywenderlich.com)


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .