本文来自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__