cocos2d-x节点(CCActionGrid3D.h)API

来源:互联网 发布:读写速度测试软件 编辑:程序博客网 时间:2024/05/22 05:22

本文来自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);// Overridesvirtual 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);    // Overridevirtual 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);    // Overridesvirtual 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);    // Overridevirtual 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);    // Overridesvirtual 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);    // Overridesvirtual 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);    // Overridesvirtual 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);    // Overridesvirtual 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__