您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x节点(CCActionTiledGrid.h)API

2013-12-08 09:30 399 查看
本文来自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__
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: