CCAnimationCache

#ifndef __CC_ANIMATION_CACHE_H__

#define __CC_ANIMATION_CACHE_H__


#include "cocoa/CCObject.h"

#include "cocoa/CCDictionary.h"


#include <string>


NS_CC_BEGIN


class CCAnimation;


/**

 * @addtogroup sprite_nodes

 * @{

 */


/** Singleton that manages the Animations.

It saves in a cache the animations. You should use this class if you want to save your animations in a cache.


Before v0.99.5, the recommend way was to save them on the CCSprite. Since v0.99.5, you should use this class instead.


@since v0.99.5

*/

class CC_DLL CCAnimationCache : public CCObject

{

public:

    CCAnimationCache();

    ~CCAnimationCache();

    /** Returns the shared instance of the Animation cache */

    static CCAnimationCache* sharedAnimationCache(void);


    /** Purges the cache. It releases all the CCAnimation objects and the shared instance.

    */

    static void purgeSharedAnimationCache(void);


    /** Adds a CCAnimation with a name.

    */

    void addAnimation(CCAnimation *animation, const char * name);


    /** Deletes a CCAnimation from the cache.

    */

    void removeAnimationByName(const char* name);


    /** Returns a CCAnimation that was previously added.

    If the name is not found it will return nil.

    You should retain the returned copy if you are going to use it.

    */

    CCAnimation* animationByName(const char* name);


    /** Adds an animation from an NSDictionary

     Make sure that the frames were previously loaded in the CCSpriteFrameCache.

     @since v1.1

     */

    void addAnimationsWithDictionary(CCDictionary* dictionary);


    /** Adds an animation from a plist file.

     Make sure that the frames were previously loaded in the CCSpriteFrameCache.

     @since v1.1

     */

    void addAnimationsWithFile(const char* plist);


    bool init(void);


private:

    void parseVersion1(CCDictionary* animations);

    void parseVersion2(CCDictionary* animations);

private:

    CCDictionary* m_pAnimations;

    static CCAnimationCache* s_pSharedAnimationCache;

};


// end of sprite_nodes group

/// @}


NS_CC_END


#endif // __CC_ANIMATION_CACHE_H__

posted @ 2014-05-22 09:41  sssssnian  阅读(94)  评论(0)    收藏  举报