CCActionGird3D源码解析
2015-08-23 20:42
417 查看
这个文件中都是一些3D网格动作。思维导图如下:
源码:
源码:
/** * @addtogroup actions * @{ */ /** @brief Waves3D action. @details This action is used for take effect on the target node as 3D waves. You can control the effect by these parameters: duration, grid size, waves count, amplitude. */ /// 3D波浪动作 class CC_DLL Waves3D : public Grid3DAction { public: /** @brief Create an action with duration, grid size, waves and amplitude. @param duration Specify the duration of the Waves3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Waves3D action. @param amplitude Specify the amplitude of the Waves3D action. @return If the creation sucess, return a pointer of Waves3D action; otherwise, return nil. */ /// 创建一个3D波浪动作 /// duration 持续时间 /// 网格尺寸 /// 波浪的数量 /// 波浪的振幅 /// 如果成功创建的话,返回一个3D波浪的指针,否则,返回空 static Waves3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude); /** @brief Get the amplitude of the effect. @return Return the amplitude of the effect. */ /// 得到3D波浪的振幅 inline float getAmplitude() const { return _amplitude; } /** @brief Set the amplitude to the effect. @param amplitude The value of amplitude will be set. */ /// 设置3D波浪的振幅 inline void setAmplitude(float amplitude) { _amplitude = amplitude; } /** @brief Get the amplitude rate of the effect. @return Return the amplitude rate of the effect. */ /// 得到振幅的频率 inline float getAmplitudeRate() const { return _amplitudeRate; } /** @brief Set the ampliture rate of the effect. @param amplitudeRate The value of amplitude rate will be set. */ /// 设置振幅的频率 inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; } // Overrides virtual Waves3D* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Waves3D() {} virtual ~Waves3D() {} /** @brief Initializes an action with duration, grid size, waves and amplitude. @param duration Specify the duration of the Waves3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Waves3D action. @param amplitude Specify the amplitude of the Waves3D action. @return If the initialization success, return true; otherwise, return false. */ /// 初始化3D波浪动作 bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude); protected: unsigned int _waves; float _amplitude; float _amplitudeRate; private: CC_DISALLOW_COPY_AND_ASSIGN(Waves3D); }; /** @brief FlipX3D action. @details This action is used for flipping the target node on the x axis. */ /// 水平3D翻转动作 class CC_DLL FlipX3D : public Grid3DAction { public: /** @brief Create the action with duration. @param duration Specify the duration of the FilpX3D action. It's a value in seconds. @return If the creation sucess, return a pointer of FilpX3D action; otherwise, return nil. */ /// 传入持续时间创建这个动作 static FlipX3D* create(float duration); // Override virtual FlipX3D* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: FlipX3D() {} virtual ~FlipX3D() {} /** @brief Initializes an action with duration. @param duration Specify the duration of the FlipX3D action. It's a value in seconds. @return If the initialization success, return true; otherwise, return false. */ /// 初始化3D翻转动作,通过持续时间 bool initWithDuration(float duration); /** @brief Initializes an action with duration and grid size. @param gridSize Specify the grid size of the FlipX3D action. @param duration Specify the duration of the FlipX3D action. It's a value in seconds. @return If the initialization success, return true; otherwise, return false. */ /// 通过网格尺寸和持续时间初始化3D翻转动作 virtual bool initWithSize(const Size& gridSize, float duration); private: CC_DISALLOW_COPY_AND_ASSIGN(FlipX3D); }; /** @brief FlipY3D action. @details This action is used for flipping the target node on the y axis. */ /// 3D竖直翻转动作 class CC_DLL FlipY3D : public FlipX3D { public: /** @brief Create the action with duration. @param duration Specify the duration of the FlipY3D action. It's a value in seconds. @return If the creation sucess, return a pointer of FlipY3D action; otherwise, return nil. */ /// 创建一个3D竖直翻转动作 static FlipY3D* create(float duration); // Overrides virtual void update(float time) override; virtual FlipY3D* clone() const override; CC_CONSTRUCTOR_ACCESS: FlipY3D() {} virtual ~FlipY3D() {} private: CC_DISALLOW_COPY_AND_ASSIGN(FlipY3D); }; /** @brief Lens3D action. @details This action is used for take effect on the target node as lens. You can create the action by these parameters: duration, grid size, center position of lens, radius of lens. Also you can change the lens effect value & whether effect is concave by the setter methods. */ /// 3D透镜动作 /// class CC_DLL Lens3D : public Grid3DAction { public: /** @brief Create the action with center position, radius, a grid size and duration. @param duration Specify the duration of the Lens3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the lens. @param radius Specify the radius of the lens. @return If the creation sucess, return a pointer of Lens3D action; otherwise, return nil. */ /// 产生一个3D透镜动作 static Lens3D* create(float duration, const Size& gridSize, const Vec2& position, float radius); /** @brief Get the value of lens effect. Default value is 0.7. @return The value of lens effect. */ /// 得到lens_effect的值,默认值是0.7 inline float getLensEffect() const { return _lensEffect; } /** @brief Set the value of lens effect. @param lensEffect The value of lens effect will be set. */ /// 设置lens_effect 的值 inline void setLensEffect(float lensEffect) { _lensEffect = lensEffect; } /** @brief Set whether lens is concave. @param concave Whether lens is concave. */ /// 设置是否凹陷 inline void setConcave(bool concave) { _concave = concave; } /** @brief Get the center position of lens effect. @return The center position of lens effect. */ /// 得到透镜效果的中心点的位置 inline const Vec2& getPosition() const { return _position; } /** @brief Set the center position of lens effect. @param position The center position will be set. */ /// 设置透镜效果的中心点位置 void setPosition(const Vec2& position); // Overrides virtual Lens3D* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Lens3D() {} virtual ~Lens3D() {} /** @brief Initializes the action with center position, radius, grid size and duration. @param duration Specify the duration of the Lens3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the lens effect. @param radius Specify the radius of the lens effect. @return If the initialization success, return true; otherwise, return false. */ /// 初始化 bool initWithDuration(float duration, const Size& gridSize, const Vec2& position, float radius); protected: /* lens center position */ Vec2 _position; float _radius; /** lens effect. Defaults to 0.7 - 0 means no effect, 1 is very strong effect */ /// 透镜效果,默认值是0.7,0代表没有效果,1代表有非常明显的效果 float _lensEffect; /** lens is concave. (true = concave, false = convex) default is convex i.e. false */ /// 透镜是否是凹面的,true= 凹面,false= 凸面 bool _concave; bool _dirty; private: CC_DISALLOW_COPY_AND_ASSIGN(Lens3D); }; /** @brief Ripple3D action. @details This action is used for take effect on the target node as ripple. You can create the action by these parameters: duration, grid size, center position of ripple, radius of ripple, waves count, amplitude. */ /// 3D波纹动作 class CC_DLL Ripple3D : public Grid3DAction { public: /** @brief Create the action with center position, radius, number of waves, amplitude, a grid size and duration. @param duration Specify the duration of the Ripple3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the ripple effect. @param radius Specify the radius of the ripple effect. @param waves Specify the waves count of the ripple effect. @param amplitude Specify the amplitude of the ripple effect. @return If the creation sucess, return a pointer of Ripple3D action; otherwise, return nil. */ /// 产生一个3D波纹动作 static Ripple3D* create(float duration, const Size& gridSize, const Vec2& position, float radius, unsigned int waves, float amplitude); /** @brief Get the center position of ripple effect. @return The center position of ripple effect. */ /// 得到波纹3D动作的中心点 inline const Vec2& getPosition() const { return _position; } /** @brief Set the center position of ripple effect. @param position The center position of ripple effect will be set. */ /// 设置波纹3D动作的中心点 void setPosition(const Vec2& position); /** @brief Get the amplitude of ripple effect. @return The amplitude of ripple effect. */ /// 得到波纹3D动作的振幅 inline float getAmplitude() const { return _amplitude; } /** @brief Set the amplitude of ripple effect. @param fAmplitude The amplitude of ripple effect. */ /// 设置波纹3D动作的振幅 inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } /** @brief Get the amplitude rate of ripple effect. @return The amplitude rate of ripple effect. */ /// 得到波纹3D动作多的频率 inline float getAmplitudeRate() const { return _amplitudeRate; } /** @brief Set the amplitude rate of ripple effect. @param fAmplitudeRate The amplitude rate of ripple effect. */ /// 设置波纹3D动作的频率 inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } // Override virtual Ripple3D* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Ripple3D() {} virtual ~Ripple3D() {} /** @brief Initializes the action with center position, radius, number of waves, amplitude, a grid size and duration. @param duration Specify the duration of the Ripple3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the ripple effect. @param radius Specify the radius of the ripple effect. @param waves Specify the waves count of the ripple effect. @param amplitude Specify the amplitude of the ripple effect. @return If the initialization success, return true; otherwise, return false. */ /// 初始化波纹3D动作 bool initWithDuration(float duration, const Size& gridSize, const Vec2& position, float radius, unsigned int waves, float amplitude); protected: /* center position */ Vec2 _position; float _radius; unsigned int _waves; float _amplitude; float _amplitudeRate; private: CC_DISALLOW_COPY_AND_ASSIGN(Ripple3D); }; /** @brief Shaky3D action. @details This action is used for take effect on the target node as shaky. You can create the action by these parameters: duration, grid size, range, whether shake on the z axis. */ /// 震动3D动作 /// 这个动作用来使一个节点产生震动效果 /// 可以通过以下的参数创建一个震动动作:持续时间,网格尺寸,震动范围,是否在Z轴上震动 class CC_DLL Shaky3D : public Grid3DAction { public: /** @brief Create the action with a range, shake Z vertices, a grid and duration. @param initWithDuration Specify the duration of the Shaky3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param range Specify the range of the shaky effect. @param shakeZ Specify whether shake on the z axis. @return If the creation sucess, return a pointer of Shaky3D action; otherwise, return nil. */ /// 创建一个震动3D动作 static Shaky3D* create(float initWithDuration, const Size& gridSize, int range, bool shakeZ); // Overrides virtual Shaky3D* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Shaky3D() {} virtual ~Shaky3D() {} /** @brief Initializes the action with a range, shake Z vertices, grid size and duration. @param duration Specify the duration of the Shaky3D action. It's a value in seconds. @param gridSize Specify the size of the grid. @param range Specify the range of the shaky effect. @param shakeZ Specify whether shake on the z axis. @return If the Initialization sucess, return true; otherwise, return false. */ /// 初始化震动3D动作 bool initWithDuration(float duration, const Size& gridSize, int range, bool shakeZ); protected: int _randrange; bool _shakeZ; private: CC_DISALLOW_COPY_AND_ASSIGN(Shaky3D); }; /** @brief Liquid action. @details This action is used for take effect on the target node as liquid. You can create the action by these parameters: duration, grid size, waves count, amplitude of the liquid effect. */ /// 液体动作 /// 这个动作使一个节点产生液体的效果 class CC_DLL Liquid : public Grid3DAction { public: /** @brief Create the action with amplitude, grid size, waves count and duration. @param duration Specify the duration of the Liquid action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Liquid action. @param amplitude Specify the amplitude of the Liquid action. @return If the creation sucess, return a pointer of Liquid action; otherwise, return nil. */ /// 创建一个液体动作 /// duartion 持续时间 /// gridSize 网格的尺寸 /// waves 动作中波浪的个数 /// amplitude 动作的振幅 static Liquid* create(float duration, const Size& gridSize, unsigned int waves, float amplitude); /** @brief Get the amplitude of the effect. @return Return the amplitude of the effect. */ /// 得到动作的振幅 inline float getAmplitude() const { return _amplitude; } /** @brief Set the amplitude to the effect. @param amplitude The value of amplitude will be set. */ /// 设置动作的振幅 inline void setAmplitude(float amplitude) { _amplitude = amplitude; } /** @brief Get the amplitude rate of the effect. @return Return the amplitude rate of the effect. */ /// 得到震动的频率 inline float getAmplitudeRate() const { return _amplitudeRate; } /** @brief Set the ampliture rate of the effect. @param amplitudeRate The value of amplitude rate will be set. */ /// 设置震动的频率 inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; } // Overrides virtual Liquid* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Liquid() {} virtual ~Liquid() {} /** @brief Initializes the action with amplitude, grid size, waves count and duration. @param duration Specify the duration of the Liquid action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Liquid action. @param amplitude Specify the amplitude of the Liquid action. @return If the initialization sucess, return true; otherwise, return false. */ /// 初始化 bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude); protected: unsigned int _waves; float _amplitude; float _amplitudeRate; private: CC_DISALLOW_COPY_AND_ASSIGN(Liquid); }; /** @brief Waves action. @details This action is used for take effect on the target node as waves. You can control the effect by these parameters: duration, grid size, waves count, amplitude, whether waves on horizontal and whether waves on vertical. */ /// 波浪 /// 这个动作是一个节点产生波浪效果 /// 你可以通过以下参数控制这个效果: /// 持续时间,网格尺寸,波浪数量,振幅,波浪是水平方向还是竖直方向 class CC_DLL Waves : public Grid3DAction { public: /** @brief Create the action with amplitude, horizontal sin, vertical sin, grid size, waves count and duration. @param duration Specify the duration of the Waves action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Waves action. @param amplitude Specify the amplitude of the Waves action. @param horizontal Specify whether waves on horizontal. @param vertical Specify whether waves on vertical. @return If the creation sucess, return a pointer of Waves action; otherwise, return nil. */ /// 创建一个波浪动作 /// duration 持续时间 /// gridSize 网格尺寸 /// waves 波浪数量 /// amplitude 振幅 /// horizontal 水平方向是否有波浪 /// vertical 竖直方向是否有波浪 static Waves* create(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical); /** @brief Get the amplitude of the effect. @return Return the amplitude of the effect. */ /// 得到动作的振幅 inline float getAmplitude() const { return _amplitude; } /** @brief Set the amplitude to the effect. @param amplitude The value of amplitude will be set. */ /// 设置动作的振幅 inline void setAmplitude(float amplitude) { _amplitude = amplitude; } /** @brief Get the amplitude rate of the effect. @return Return the amplitude rate of the effect. */ /// 得到振幅的频率 inline float getAmplitudeRate() const { return _amplitudeRate; } /** @brief Set the ampliture rate of the effect. @param amplitudeRate The value of amplitude rate will be set. */ /// 设置振幅的频率 inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; } // Overrides virtual Waves* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Waves() {} virtual ~Waves() {} /** @brief Initializes the action with amplitude, horizontal sin, vertical sin, grid size, waves count and duration. @param duration Specify the duration of the Waves action. It's a value in seconds. @param gridSize Specify the size of the grid. @param waves Specify the waves count of the Waves action. @param amplitude Specify the amplitude of the Waves action. @param horizontal Specify whether waves on horizontal. @param vertical Specify whether waves on vertical. @return If the initialization sucess, return true; otherwise, return false. */ /// 初始化动作 bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical); protected: unsigned int _waves; float _amplitude; float _amplitudeRate; bool _vertical; bool _horizontal; private: CC_DISALLOW_COPY_AND_ASSIGN(Waves); }; /** @brief Twirl action. @details This action is used for take effect on the target node as twirl. You can control the effect by these parameters: duration, grid size, center position, twirls count, amplitude. */ /// 扭曲动作 /// 这个动作是在一个节点上产生扭曲效果 /// 你可以通过控制以下参数,控制效果:持续时间,网格尺寸,中心位置,扭曲数量,振幅 class CC_DLL Twirl : public Grid3DAction { public: /** @brief Create the action with center position, number of twirls, amplitude, a grid size and duration. @param duration Specify the duration of the Twirl action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the twirl action. @param twirls Specify the twirls count of the Twirl action. @param amplitude Specify the amplitude of the Twirl action. @return If the creation sucess, return a pointer of Twirl action; otherwise, return nil. */ /// 创建一个扭曲动作 static Twirl* create(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude); /** @brief Get the center position of twirl action. @return The center position of twirl action. */ /// 得到动作的中心位置 inline const Vec2& getPosition() const { return _position; } /** @brief Set the center position of twirl action. @param position The center position of twirl action will be set. */ /// 设置动作的中心位置 void setPosition(const Vec2& position); /** @brief Get the amplitude of the effect. @return Return the amplitude of the effect. */ /// 得到动作的振幅 inline float getAmplitude() const { return _amplitude; } /** @brief Set the amplitude to the effect. @param amplitude The value of amplitude will be set. */ /// 设置动作的振幅 inline void setAmplitude(float amplitude) { _amplitude = amplitude; } /** @brief Get the amplitude rate of the effect. @return Return the amplitude rate of the effect. */ /// 得到振幅的频率 inline float getAmplitudeRate() const { return _amplitudeRate; } /** @brief Set the ampliture rate of the effect. @param amplitudeRate The value of amplitude rate will be set. */ /// 设置振幅的频率 inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; } // Overrides virtual Twirl* clone() const override; virtual void update(float time) override; CC_CONSTRUCTOR_ACCESS: Twirl() {} virtual ~Twirl() {} /** @brief Initializes the action with center position, number of twirls, amplitude, a grid size and duration. @param duration Specify the duration of the Twirl action. It's a value in seconds. @param gridSize Specify the size of the grid. @param position Specify the center position of the twirl action. @param twirls Specify the twirls count of the Twirl action. @param amplitude Specify the amplitude of the Twirl action. @return If the initialization sucess, return true; otherwise, return false. */ /// 初始化动作 bool initWithDuration(float duration, const Size& gridSize, Vec2 position, unsigned int twirls, float amplitude); protected: /* twirl center */ Vec2 _position; unsigned int _twirls; float _amplitude; float _amplitudeRate; private: CC_DISALLOW_COPY_AND_ASSIGN(Twirl); }; // end of actions group /// @}
相关文章推荐
- Linux 经常使用 性能 检测 命令 说明
- HDU 4407 Sum(容斥原理)
- POJ 1321 棋盘问题(深搜)
- [GDOI模拟2015.08.18]解密
- C/C++头文件注释
- 坚持不懈之linux haproxy 配置文件 详情
- windows 10 设置
- 位扩展和位截断
- [LeetCode] Search a 2D Matrix(二分查找)
- 不错的文章
- linux-fdisk/mke2fs/dumpe2fs/fsck
- linux内核移植和根文件系统制作(三)
- 安卓开发笔记二——软键盘弹出不遮挡布局的策略
- Selenium学习---(三)
- Mysql与Oracle区别
- 求某正整数重新打乱后最大数与最小数的差值
- 求二进制数中1的个数
- java基础-API-集合框架-Collection
- 指向数组的指针
- Linux下文本常用处理技巧