本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
过程的基类
///cocos2d-x-3.0alpha0/extensions/CocoStudio/Armature/animation //过程的基类 #ifndef __CCPROCESSBASE_H__ #define __CCPROCESSBASE_H__ #include "../utils/CCArmatureDefine.h" #include "../datas/CCDatas.h" NS_CC_EXT_ARMATURE_BEGIN enum AnimationType { SINGLE_FRAME = -4, //! 这个 animation 只有一个 帧 ANIMATION_NO_LOOP, //! 这个 animation 不会循环 ANIMATION_TO_LOOP_FRONT, //! 这个 animation 从前面循环 ANIMATION_TO_LOOP_BACK, //! 这个 animation 从后面循环 ANIMATION_LOOP_FRONT, //! 这个 animation 从前面循环 ANIMATION_LOOP_BACK, //! 这个 animation 从后面循环 ANIMATION_MAX, }; class ProcessBase : public Object { public: /** * @js ctor */ ProcessBase(void); /** * @js NA * @lua NA */ ~ProcessBase(void); /** * 使用动画名播放动画 * * @param animation 它不会在 ProcessBase 类里面使用 * @param durationTo 两个动画 changing-over(变化结束)之间的帧. * 这个动画需要改变多少个帧 * * -1 : MovementData 使用这个值从动画设计面板里面获取 * @param durationTween 你想在游戏中播放的帧的数量。 * 如果_durationTween是80,那么动画将在一个循环中播放80帧 * * -1 : MovementData 使用这个值从动画设计面板里面获取 * * @param loop 动画是否循环 * * loop < 0 : MovementData 使用这个值从动画设计面板里面获取 * loop = 0 : this animation is not loop * loop > 0 : this animation is loop * * @param tweenEasing Tween easing 用于计算慢动作效果 * * TWEEN_EASING_MAX : MovementData 使用这个值从动画设计面板里面获取 * -1 : fade out 淡出 * 0 : line * 1 : fade in 淡入 * 2 : fade in and out 淡入淡出 * */ virtual void play(void *animation, int durationTo, int durationTween, int loop, int tweenEasing); /** * Pause the Process //暂停 */ virtual void pause(); /** * Resume the Process(处理) //恢复 */ virtual void resume(); /** * Stop the Process(处理) //停止 */ virtual void stop(); virtual void gotoFrame(int frameIndex); /** * 你不应该调用这个函数,除非你知道你在做什么 * * * @param The duration since last update //更新过程,包括当前进程,当前帧 */ virtual void update(float dt); virtual int getCurrentFrameIndex(); protected: /** * Update(float dt) 将调用此处理程序,您可以在这里处理你的逻辑 */ virtual void updateHandler() {}; protected: //! Scale the process speed //缩放处理速度 CC_SYNTHESIZE(float, _processScale, ProcessScale); //! Set and get whether the aniamtion is pause //设置/获取 动画是否暂停 CC_SYNTHESIZE(bool, _isPause, IsPause); //! Set and get whether the aniamtion is complete //设置/获取 动画是否完成 CC_SYNTHESIZE(bool, _isComplete, IsComplete); //! Set and get whether the aniamtion is playing //设置/获取 动画是否正在播放 CC_SYNTHESIZE(bool, _isPlaying, IsPlaying); //! Current percent this process arrived //这个过程是否达到了 百分百 CC_SYNTHESIZE(float, _currentPercent, CurrentPercent); //! The raw duration //资源持续时间 CC_SYNTHESIZE(int, _rawDuration, RawDuration); //! The animation whether or not loop //动画是否循环 CC_SYNTHESIZE(AnimationType, _loopType, LoopType); //! The tween easing effect //补间动画放缓效果 CC_SYNTHESIZE(CCTweenType, _tweenEasing, TweenEasing); //! The animation update speed //更新动画速度 CC_SYNTHESIZE(float, _animationInternal, AnimationInternal); protected: //! The durantion frame count will run //帧要运行的长短 int _durationTween; //! Current frame this process arrived, this frame is tween frame //当前帧执行完了,这个帧是帧补间动画 float _currentFrame; //! Frame index it the time line //帧的时间线索引 int _curFrameIndex; //! Next frame this process need run to //这个过程需要运行的下一帧 int _nextFrameIndex; bool _isLoopBack; }; NS_CC_EXT_ARMATURE_END #endif /*__CCPROCESSBASE_H__*/