本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-x节点(CCActionGrid3D.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
透视、震动、水波、波纹....3D效果
///cocos2d-x-3.0alpha0/cocos2dx/actions //透视、震动、水波、波纹....3D效果 #ifndef __ACTION_CCGRID3D_ACTION_H__ #define __ACTION_CCGRID3D_ACTION_H__ #include "CCActionGrid.h" NS_CC_BEGIN /** * @addtogroup actions * @{ */ /** @brief Waves3D action */ class CC_DLL Waves3D : public Grid3DAction { public: /** 使用 waves、amplitude(振幅)、 grid 的尺寸 、 duration 创建一个 action */ static Waves3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude); /** returns the amplitude of the effect */ inline float getAmplitude(void) const { return _amplitude; } /** sets the amplitude to the effect */ inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } /** returns the amplitude rate */ inline float getAmplitudeRate(void) const { return _amplitudeRate; } /** sets the ampliture rate */ inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } /** 使用 waves、amplitude(振幅)、 grid 的尺寸 、 duration 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude); // Overrides virtual Waves3D* clone() const override; virtual void update(float time) override; protected: unsigned int _waves; float _amplitude; float _amplitudeRate; }; /** @brief FlipX3D action */ class CC_DLL FlipX3D : public Grid3DAction { public: /** 使用 duration 创建一个 action */ static FlipX3D* create(float duration); /** 使用 duration 初始化一个 action */ bool initWithDuration(float duration); virtual bool initWithSize(const Size& gridSize, float duration); // Override virtual FlipX3D* clone() const override; virtual void update(float time) override; }; /** @brief FlipY3D action */ class CC_DLL FlipY3D : public FlipX3D { public: /** creates the action with duration */ static FlipY3D* create(float duration); // Overrides virtual void update(float time) override; virtual FlipY3D* clone() const override; }; /** @brief Lens3D(透视) action */ class CC_DLL Lens3D : public Grid3DAction { public: /** 使用 中心位置、半径、 grid 的尺寸 、 duration 初始化一个 action */ static Lens3D* create(float duration, const Size& gridSize, const Point& position, float radius); /** Get 镜头中心位置 */ inline float getLensEffect(void) const { return _lensEffect; } /** Set 镜头中心位置 */ inline void setLensEffect(float fLensEffect) { _lensEffect = fLensEffect; } /** 设置是否是凹镜头 */ inline void setConcave(bool bConcave) { _concave = bConcave; } inline const Point& getPosition(void) const { return _position; } void setPosition(const Point& position); /** 使用 中心位置、半径、 grid 的尺寸 、 duration 创建一个 action */ bool initWithDuration(float duration, const Size& gridSize, const Point& position, float radius); // Overrides virtual Lens3D* clone() const override; virtual void update(float time) override; protected: /* 镜头中心位置 */ Point _position; float _radius; /** 透镜效应. 默认为 0.7 - 0 意味着没有效果, 1 是非常强的影响 */ float _lensEffect; /** 透镜是凹的. (true = concave(凹), false = convex(凸)) 默认是凸的 i.e. false */ bool _concave; bool _dirty; }; /** @brief Ripple3D(波纹) action */ class CC_DLL Ripple3D : public Grid3DAction { public: /** 使用 半径、波的数目、amplitude(振幅)、 grid 的尺寸 、 duration 初始化一个 action */ static Ripple3D* create(float duration, const Size& gridSize, const Point& position, float radius, unsigned int waves, float amplitude); /** get 中心位置 */ inline const Point& getPosition(void) const { return _position; } /** set 中心位置 */ void setPosition(const Point& position); inline float getAmplitude(void) const { return _amplitude; } inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } inline float getAmplitudeRate(void) const { return _amplitudeRate; } inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } /** 使用 半径、波的数目、amplitude(振幅)、 grid 的尺寸 、 duration 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, const Point& position, float radius, unsigned int waves, float amplitude); // Override virtual Ripple3D* clone() const override; virtual void update(float time) override; protected: /* center position */ Point _position; float _radius; unsigned int _waves; float _amplitude; float _amplitudeRate; }; /** @brief Shaky3D action */ class CC_DLL Shaky3D : public Grid3DAction { public: /**使用一个 范围、震动 Z 顶点、grid、 druation 初始化一个 action */ static Shaky3D* create(float duration, const Size& gridSize, int range, bool shakeZ); /** 使用一个 范围、震动 Z 顶点、grid、 druation 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, int range, bool shakeZ); // Overrides virtual Shaky3D* clone() const override; virtual void update(float time) override; protected: int _randrange; bool _shakeZ; }; /** @brief Liquid(水波) action */ class CC_DLL Liquid : public Grid3DAction { public: /** 使用 amplitude(振幅)、持续时间 创建一个 action */ static Liquid* create(float duration, const Size& gridSize, unsigned int waves, float amplitude); inline float getAmplitude(void) const { return _amplitude; } inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } inline float getAmplitudeRate(void) const { return _amplitudeRate; } inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } /** 使用 amplitude(振幅)、持续时间 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude); // Overrides virtual Liquid* clone() const override; virtual void update(float time) override; protected: unsigned int _waves; float _amplitude; float _amplitudeRate; }; /** @brief Waves(波) action */ class CC_DLL Waves : public Grid3DAction { public: /** 使用 amplitude(振幅)、 横向/垂直 、grid 、持续时间 创建一个 action */ static Waves* create(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical); inline float getAmplitude(void) const { return _amplitude; } inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } inline float getAmplitudeRate(void) const { return _amplitudeRate; } inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } /** 使用 amplitude(振幅)、 横向/垂直 、grid 、持续时间 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical); // Overrides virtual Waves* clone() const override; virtual void update(float time) override; protected: unsigned int _waves; float _amplitude; float _amplitudeRate; bool _vertical; bool _horizontal; }; /** @brief Twirl action */ class CC_DLL Twirl : public Grid3DAction { public: /** 使用 中心位置,twirls(萦绕)数,amplitude(振幅),网格的大小和持续时间 创建一个 action */ static Twirl* create(float duration, const Size& gridSize, Point position, unsigned int twirls, float amplitude); /** get twirls(萦绕)中心 */ inline const Point& getPosition(void) const { return _position; } /** set twirls(萦绕)中心 */ void setPosition(const Point& position); inline float getAmplitude(void) const { return _amplitude; } inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; } inline float getAmplitudeRate(void) const { return _amplitudeRate; } inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; } /** 使用 中心位置,twirls(萦绕)数,振幅,网格的大小和持续时间 初始化一个 action */ bool initWithDuration(float duration, const Size& gridSize, Point position, unsigned int twirls, float amplitude); // Overrides virtual Twirl* clone() const override; virtual void update(float time) override; protected: /* twirls(萦绕)中心 */ Point _position; unsigned int _twirls; float _amplitude; float _amplitudeRate; }; // end of actions group /// @} NS_CC_END #endif // __ACTION_CCGRID3D_ACTION_H__