cocos2d-x节点(CCAnimation.h)API
2013-11-30 14:17
148 查看
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
//创建帧动画
cocos2d-x节点(CCAnimation.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记//创建帧动画
///cocos2d-x-3.0alpha0/cocos2dx/sprite_nodes //创建帧动画 #ifndef __CC_ANIMATION_H__ #define __CC_ANIMATION_H__ #include "platform/CCPlatformConfig.h" #include "cocoa/CCObject.h" #include "cocoa/CCArray.h" #include "cocoa/CCDictionary.h" #include "cocoa/CCGeometry.h" #include "CCSpriteFrame.h" #include <string> NS_CC_BEGIN class Texture2D; class SpriteFrame; /** * @addtogroup sprite_nodes * @{ */ /** AnimationFrame 一帧动画。它包含的信息,如: - sprite frame name //精灵的框架名称 - # of delay units. //延迟单元 - offset //偏移 @since v2.0 */ class CC_DLL AnimationFrame : public Object, public Clonable { public: /** * @js ctor */ AnimationFrame(); /** * @js NA * @lua NA */ virtual ~AnimationFrame(); /** 使用 spriteframe,延迟单元数,用户通知 初始化一个帧动画 */ bool initWithSpriteFrame(SpriteFrame* spriteFrame, float delayUnits, Dictionary* userInfo); SpriteFrame* getSpriteFrame() const { return _spriteFrame; }; void setSpriteFrame(SpriteFrame* frame) { CC_SAFE_RETAIN(frame); CC_SAFE_RELEASE(_spriteFrame); _spriteFrame = frame; } /** 获取帧需要的单位时间 */ float getDelayUnits() const { return _delayUnits; }; /** Sets 帧需要的单位时间 */ void setDelayUnits(float delayUnits) { _delayUnits = delayUnits; }; /** @brief 获取用户详细资料 框架显示本字典的用户信息,一个AnimationFrameDisplayedNotification通知会广播,如果用户信息是 nil,那么没有通知将播出 */ Dictionary* getUserInfo() const { return _userInfo; }; /** Sets user infomation */ void setUserInfo(Dictionary* userInfo) { CC_SAFE_RETAIN(userInfo); CC_SAFE_RELEASE(_userInfo); _userInfo = userInfo; } // Overrides virtual AnimationFrame *clone() const override; protected: /** SpriteFrameName to be used */ SpriteFrame* _spriteFrame; /** 帧需要的单位时间 */ float _delayUnits; /** 框架显示本字典的用户信息,一个AnimationFrameDisplayedNotification通知会广播,如果用户信息是 nil,那么没有通知将播出 . */ Dictionary* _userInfo; }; /** 动画对象用于执行Sprite动画. 动画的对象包含 AnimationFrame 对象, 帧之间的延迟. 您可以通过使用动画动作作为动画对象. Example: @code sprite->runAction(Animate::create(animation)); @endcode */ class CC_DLL Animation : public Object, public Clonable { public: /** Creates an animation @since v0.99.5 */ static Animation* create(void); /* 使用 AnimationFrame 数组,帧之间的延迟 创建一个动画 将在帧上添加一个 "delay unit". @since v0.99.5 */ static Animation* createWithSpriteFrames(Array* arrayOfSpriteFrameNames, float delay = 0.0f); /* 使用 AnimationFrame 数组,帧之间的延迟(每隔多久会执行) 创建一个动画 @since v2.0 * @js NA */ static Animation* create(Array *arrayOfAnimationFrameNames, float delayPerUnit, unsigned int loops = 1); /** * @js ctor */ Animation(); /** * @js NA * @lua NA */ virtual ~Animation(void); bool init(); /** 使用 Frame,帧之间的延迟(每隔多久会执行) 初始化一个动画 @since v0.99.5 */ bool initWithSpriteFrames(Array *pFrames, float delay = 0.0f); /** 使用 AnimationFrame 初始化一个动画 @since v2.0 */ bool initWithAnimationFrames(Array* arrayOfAnimationFrames, float delayPerUnit, unsigned int loops); /** 添加一个 SpriteFrame 到一个 Animation 将在帧上添加一个 "delay unit". */ void addSpriteFrame(SpriteFrame *pFrame); /** Adds a frame with an image filename. 内部它将创建一个SpriteFrame并添加它 将在帧上添加一个 "delay unit". Added to facilitate the migration from v0.8 to v0.9. */ void addSpriteFrameWithFile(const char *filename); /** @deprecated. Use addSpriteFrameWithFile() instead */ CC_DEPRECATED_ATTRIBUTE void addSpriteFrameWithFileName(const char *filename){ addSpriteFrameWithFile(filename);} /** Adds a frame with a texture and a rect. 内部它将创建一个SpriteFrame并添加它 将在帧上添加一个 "delay unit". 加入它帮助你从V0.8迁移到V0.9. */ void addSpriteFrameWithTexture(Texture2D* pobTexture, const Rect& rect); /** Gets 单元动画总延迟. */ float getTotalDelayUnits() const { return _totalDelayUnits; }; /** Sets "delay unit"(延迟单元) 以秒为单位 */ void setDelayPerUnit(float delayPerUnit) { _delayPerUnit = delayPerUnit; }; /** Gets "delay unit"(延迟单元) 以秒为单位 */ float getDelayPerUnit() const { return _delayPerUnit; }; /** Gets 整个动画的持续时间以秒为单位。它的结果是的 totalDelayUnits * delayPerUnit */ float getDuration() const; /** Gets the array of AnimationFrames */ Array* getFrames() const { return _frames; }; /** Sets the array of AnimationFrames */ void setFrames(Array* frames) { CC_SAFE_RETAIN(frames); CC_SAFE_RELEASE(_frames); _frames = frames; } /** Checks 完成动画时,是否恢复原来的帧. */ bool getRestoreOriginalFrame() const { return _restoreOriginalFrame; }; /** Sets 完成动画时,是否恢复原来的帧 */ void setRestoreOriginalFrame(bool restoreOriginalFrame) { _restoreOriginalFrame = restoreOriginalFrame; }; /** Gets 循环动画。 0表示动画不是动画。 1,动画执行一次, ... */ unsigned int getLoops() const { return _loops; }; /** Sets 循环动画。 0表示动画不是动画。 1,动画执行一次, ... */ void setLoops(unsigned int loops) { _loops = loops; }; // overrides virtual Animation *clone() const override; protected: /** 动画总共有多少个延迟单元. */ float _totalDelayUnits; /** Delay in seconds of the "delay unit" */ float _delayPerUnit; /** 整个动画的持续时间以秒为单位。它的结果是的 totalDelayUnits * delayPerUnit */ float _duration; /** array of AnimationFrames */ Array* _frames; /** 完成时是否应恢复原来的帧动画 */ bool _restoreOriginalFrame; /** 多少次循环动画。 0表示动画不是动画。 1,动画执行一次, ... */ unsigned int _loops; }; // end of sprite_nodes group /// @} NS_CC_END #endif // __CC_ANIMATION_H__
相关文章推荐
- cocos2d-X 节点(CCAnimationCache.h)API
- cocos2d-X 节点(CCLabelTTF.h)API
- cocos2d-X 节点(CCTMXLayer.h)API
- cocos2d-X 节点(CCArmatureAnimation.h)API
- cocos2d-X 节点(UILayer.h)API
- cocos2d-X 节点(UITextField.h)API
- cocos2d-x节点(b2Rope.h)API
- cocos2d-x节点(b2Island.h)API
- cocos2d-x节点(b2Draw.h)API
- cocos2d-x节点(base64.h)API
- cocos2d-x节点(CCApplicationProtocol.h)API
- cocos2d-x节点(CCTransitionProgress.h)API
- cocos2d-x节点(CCFloat.h)API
- cocos2d-x节点(CCActionGrid3D.h)API
- cocos2d-X 节点(CCLayer.h)API
- cocos2d-X 节点(CCTileMapAtlas.h)API
- cocos2d-X 节点(SimpleAudioEngine.h)API
- cocos2d-X 节点(CCMotionStreak.h)API
- cocos2d-X 节点(CCProcessBase.h)API
- cocos2d-X 节点(UIDragPanel.h)API