本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-x节点(CCActionTiledGrid.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
//拆分、淡出、波形、震动 action
///cocos2d-x-3.0alpha0/cocos2dx/actions
//拆分、淡出、波形、震动 action
#ifndef __ACTION_CCTILEDGRID_ACTION_H__
#define __ACTION_CCTILEDGRID_ACTION_H__
#include "CCActionGrid.h"
NS_CC_BEGIN
/**
* @addtogroup actions
* @{
*/
/** @brief ShakyTiles3D action */
class CC_DLL ShakyTiles3D : public TiledGrid3DAction
{
public:
/** 使用 范围、是否晃动z顶点、grid 的尺寸、duration 创建一个 action */
static ShakyTiles3D* create(float duration, const Size& gridSize, int nRange, bool bShakeZ);
/** 使用 范围、是否晃动z顶点、grid 的尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, int nRange, bool bShakeZ);
// Override
virtual ShakyTiles3D* clone() const override;
virtual void update(float time) override;
protected:
int _randrange;
bool _shakeZ;
};
/** @brief ShatteredTiles3D action */
class CC_DLL ShatteredTiles3D : public TiledGrid3DAction
{
public:
/** 使用 范围、是否 shatter(粉碎)z顶点、grid 的尺寸、duration 创建一个 action
*/
static ShatteredTiles3D* create(float duration, const Size& gridSize, int nRange, bool bShatterZ);
/** 使用 范围、是否 shatter(粉碎)z顶点、grid 的尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, int nRange, bool bShatterZ);
// Override
virtual ShatteredTiles3D* clone() const override;
virtual void update(float time) override;
protected:
int _randrange;
bool _once;
bool _shatterZ;
};
struct Tile;
/** @brief ShuffleTiles action
Shuffle(随机)the tiles in random order
*/
class CC_DLL ShuffleTiles : public TiledGrid3DAction
{
public:
/** 使用 a random seed、grid 的尺寸、duration 初始化一个 action */
static ShuffleTiles* create(float duration, const Size& gridSize, unsigned int seed);
/**
* @js NA
* @lua NA
*/
virtual ~ShuffleTiles(void);
/** 使用 a random seed、grid 的尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, unsigned int seed);
void shuffle(unsigned int *array, unsigned int nLen);
Size getDelta(const Size& pos) const;
void placeTile(const Point& pos, Tile *t);
// Overrides
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
virtual ShuffleTiles* clone() const override;
protected:
unsigned int _seed;
unsigned int _tilesCount;
unsigned int* _tilesOrder;
Tile* _tiles;
};
/** @brief FadeOutTRTiles action
向右上角方向淡出的 tiles
*/
class CC_DLL FadeOutTRTiles : public TiledGrid3DAction
{
public:
/** 使用 grid 的尺寸、duration 创建一个 action */
static FadeOutTRTiles* create(float duration, const Size& gridSize);
virtual float testFunc(const Size& pos, float time);
void turnOnTile(const Point& pos);
void turnOffTile(const Point& pos);
virtual void transformTile(const Point& pos, float distance);
// Overrides
virtual void update(float time) override;
virtual FadeOutTRTiles* clone() const override;
};
/** @brief FadeOutBLTiles action.
向左下角方向淡出的 tiles
*/
class CC_DLL FadeOutBLTiles : public FadeOutTRTiles
{
public:
/** 使用 grid 的尺寸、duration 创建一个 action */
static FadeOutBLTiles* create(float duration, const Size& gridSize);
// Overrides
virtual float testFunc(const Size& pos, float time) override;
virtual FadeOutBLTiles* clone() const override;
};
/** @brief FadeOutUpTiles action.
向上方向淡出的 tiles
*/
class CC_DLL FadeOutUpTiles : public FadeOutTRTiles
{
public:
/** 使用 grid 的尺寸、duration 创建一个 action */
static FadeOutUpTiles* create(float duration, const Size& gridSize);
virtual void transformTile(const Point& pos, float distance);
// Overrides
virtual FadeOutUpTiles* clone() const override;
virtual float testFunc(const Size& pos, float time) override;
};
/** @brief FadeOutDownTiles action.
向下方向淡出的 tiles
*/
class CC_DLL FadeOutDownTiles : public FadeOutUpTiles
{
public:
/** 使用 grid 的尺寸、duration 创建一个 action */
static FadeOutDownTiles* create(float duration, const Size& gridSize);
// Overrides
virtual FadeOutDownTiles* clone() const override;
virtual float testFunc(const Size& pos, float time) override;
};
/** @brief TurnOffTiles action.
随机关闭文件
*/
class CC_DLL TurnOffTiles : public TiledGrid3DAction
{
public:
/** 使用 grid 的尺寸、duration 创建一个 action */
static TurnOffTiles* create(float duration, const Size& gridSize);
/** 使用 a random seed、grid 的尺寸、duration 初始化一个 action */
static TurnOffTiles* create(float duration, const Size& gridSize, unsigned int seed);
/**
* @js NA
* @lua NA
*/
~TurnOffTiles(void);
/** 使用 a random seed、grid 的尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, unsigned int seed);
void shuffle(unsigned int *pArray, unsigned int nLen);
void turnOnTile(const Point& pos);
void turnOffTile(const Point& pos);
// Overrides
virtual TurnOffTiles* clone() const override;
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
protected:
unsigned int _seed;
unsigned int _tilesCount;
unsigned int* _tilesOrder;
};
/** @brief WavesTiles3D action. */
class CC_DLL WavesTiles3D : public TiledGrid3DAction
{
public:
/** 使用 波数、the sin amplitude(振幅)、grid 尺寸、duration 创建一个 action
*/
static WavesTiles3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);
/** 使用 波数、the sin amplitude(振幅)、grid 尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude);
/** waves(波浪) amplitude(振幅) */
inline float getAmplitude(void) const { return _amplitude; }
inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; }
/** waves(波浪)amplitude(振幅)rate */
inline float getAmplitudeRate(void) const { return _amplitudeRate; }
inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; }
// Override
virtual WavesTiles3D* clone() const override;
virtual void update(float time) override;
protected:
unsigned int _waves;
float _amplitude;
float _amplitudeRate;
};
/** @brief JumpTiles3D action.
使用 sin 函数移动 tiles 跨越 z 轴
*/
class CC_DLL JumpTiles3D : public TiledGrid3DAction
{
public:
/** 使用 跳跃次数、the sin amplitude(振幅)、grid 的尺寸、duration 创建一个 action */
static JumpTiles3D* create(float duration, const Size& gridSize, unsigned int numberOfJumps, float amplitude);
/** 使用 跳跃次数、the sin amplitude(振幅)、grid 的尺寸、duration 初始化一个 action */
bool initWithDuration(float duration, const Size& gridSize, unsigned int numberOfJumps, float amplitude);
/** amplitude(振幅) of the sin*/
inline float getAmplitude(void) const { return _amplitude; }
inline void setAmplitude(float fAmplitude) { _amplitude = fAmplitude; }
/** amplitude(振幅)rate(速率) */
inline float getAmplitudeRate(void) const { return _amplitudeRate; }
inline void setAmplitudeRate(float fAmplitudeRate) { _amplitudeRate = fAmplitudeRate; }
// Override
virtual JumpTiles3D* clone() const override;
virtual void update(float time) override;
protected:
unsigned int _jumps;
float _amplitude;
float _amplitudeRate;
};
/** @brief SplitRows action */
class CC_DLL SplitRows : public TiledGrid3DAction
{
public :
/** 使用 拆分行数、duration 创建一个 action */
static SplitRows* create(float duration, unsigned int nRows);
/** 使用 拆分行数、duration 初始化一个 action*/
bool initWithDuration(float duration, unsigned int nRows);
// Overrides
virtual SplitRows* clone() const override;
virtual void update(float time) override;
virtual void startWithTarget(Node *target) override;
protected:
unsigned int _rows;
Size _winSize;
};
/** @brief SplitCols action */
class CC_DLL SplitCols : public TiledGrid3DAction
{
public:
/** 使用 拆分列数、duration 创建一个 action */
static SplitCols* create(float duration, unsigned int nCols);
/** 使用 拆分列数、duration 初始化一个 action */
bool initWithDuration(float duration, unsigned int nCols);
// Overrides
virtual SplitCols* clone() const override;
virtual void update(float time) override;
virtual void startWithTarget(Node *target) override;
protected:
unsigned int _cols;
Size _winSize;
};
// end of actions group
/// @}
NS_CC_END
#endif // __ACTION_CCTILEDGRID_ACTION_H__