瓦片网格动作和进度动作
CCActionProgressTimer:
源代码:
/**
* @addtogroup actions
* @{
*/
/**
@brief Progress to percentage.
@details This action show the target node from current percentage to the specified percentage.
You should specify the destination percentage when creating the action.
@since v0.99.1
*/
/// 进展动作
/// 这个动作将显示target从当前百分比到指定百分比
/// 你应该指定最终的百分比,在创建这个动作的时候
class CC_DLL ProgressTo : public ActionInterval
{
public:
/**
* @brief Create and initializes with a duration and a destination percentage.
* @param duration Specify the duration of the ProgressTo action. It's a value in seconds.
* @param percent Specify the destination percentage.
* @return If the creation sucess, return a pointer of ProgressTo action; otherwise, return nil.
*/
/// 创建一个进展动作
static ProgressTo* create(float duration, float percent);
//
// Overrides
//
virtual ProgressTo* clone() const override;
virtual ProgressTo* reverse() const override;
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
ProgressTo() {}
virtual ~ProgressTo() {}
/**
* @brief Initializes with a duration and destination percentage.
* @param duration Specify the duration of the ProgressTo action. It's a value in seconds.
* @param percent Specify the destination percentage.
* @return If the creation sucess, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, float percent);
protected:
float _to;
float _from;
private:
CC_DISALLOW_COPY_AND_ASSIGN(ProgressTo);
};
/**
@brief Progress from a percentage to another percentage.
@since v0.99.1
*/
/// 从一个百分比进行到另一个百分比
class CC_DLL ProgressFromTo : public ActionInterval
{
public:
/**
* @brief Create and initializes the action with a duration, a "from" percentage and a "to" percentage.
* @param duration Specify the duration of the ProgressFromTo action. It's a value in seconds.
* @param fromPercentage Specify the source percentage.
* @param toPercentage Specify the destination percentage.
* @return If the creation sucess, return a pointer of ProgressFromTo action; otherwise, return nil.
*/
/// 创建一个动作
static ProgressFromTo* create(float duration, float fromPercentage, float toPercentage);
//
// Overrides
//
virtual ProgressFromTo* clone() const override;
virtual ProgressFromTo* reverse() const override;
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
ProgressFromTo() {}
virtual ~ProgressFromTo() {}
/**
* @brief Initializes the action with a duration, a "from" percentage and a "to" percentage.
* @param duration Specify the duration of the ProgressFromTo action. It's a value in seconds.
* @param fromPercentage Specify the source percentage.
* @param toPercentage Specify the destination percentage.
* @return If the creation sucess, return true; otherwise, return false.
*/
bool initWithDuration(float duration, float fromPercentage, float toPercentage);
protected:
float _to;
float _from;
private:
CC_DISALLOW_COPY_AND_ASSIGN(ProgressFromTo);
};
// end of actions group
/// @}
CCActionTiledGrid:
源码:
/**
* @addtogroup actions
* @{
*/
/**
@brief ShakyTiles3D action.
@details This action is make the target node shake with many tiles.
You can create the action by these parameters:
duration, grid size, range, whether shake on the z axis.
*/
/// 3D瓦片震动动作
class CC_DLL ShakyTiles3D : public TiledGrid3DAction
{
public:
/**
@brief Create the action with a range, shake Z vertices, a grid and duration.
@param duration Specify the duration of the ShakyTiles3D action. It's a value in seconds.
@param gridSize Specify the size of the grid.
@param range Specify the range of the shaky effect.
@param shakeZ Specify whether shake on the z axis.
@return If the creation success, return a pointer of ShakyTiles3D action; otherwise, return nil.
*/
/// 创建一个3D瓦片震动动作
static ShakyTiles3D* create(float duration, const Size& gridSize, int range, bool shakeZ);
// Override
virtual ShakyTiles3D* clone() const override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
ShakyTiles3D() {}
virtual ~ShakyTiles3D() {}
/**
@brief Initializes the action with a range, shake Z vertices, grid size and duration.
@param duration Specify the duration of the ShakyTiles3D action. It's a value in seconds.
@param gridSize Specify the size of the grid.
@param range Specify the range of the shaky effect.
@param shakeZ Specify whether shake on the z axis.
@return If the Initialization success, return true; otherwise, return false.
*/
///初始化
bool initWithDuration(float duration, const Size& gridSize, int range, bool shakeZ);
protected:
int _randrange;
bool _shakeZ;
private:
CC_DISALLOW_COPY_AND_ASSIGN(ShakyTiles3D);
};
/**
@brief ShatteredTiles3D action.
@details This action make the target node shattered with many tiles.
You can create the action by these parameters:
duration, grid size, range, whether shatter on the z axis.
*/
/// 3D瓦片破碎动作
class CC_DLL ShatteredTiles3D : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with a range, whether of not to shatter Z vertices, grid size and duration.
* @param duration Specify the duration of the ShatteredTiles3D action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param range Specify the range of the shatter effect.
* @param shatterZ Specify whether shatter on the z axis.
* @return If the creation success, return a pointer of ShatteredTiles3D action; otherwise, return nil.
*/
/// 创建一个3D瓦片破碎动作
/// duration 持续时间
/// gridSize 网格尺寸
/// range 指定的破碎效果的范围
/// shatterZ 指定在Z轴上是否有破碎效果
static ShatteredTiles3D* create(float duration, const Size& gridSize, int range, bool shatterZ);
// Override
virtual ShatteredTiles3D* clone() const override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
ShatteredTiles3D() {}
virtual ~ShatteredTiles3D() {}
/**
@brief Initializes the action with a range, shatter Z vertices, grid size and duration.
@param duration Specify the duration of the ShatteredTiles3D action. It's a value in seconds.
@param gridSize Specify the size of the grid.
@param range Specify the range of the shatter effect.
@param shatterZ Specify whether shake on the z axis.
@return If the Initialization success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, const Size& gridSize, int range, bool shatterZ);
protected:
int _randrange;
bool _once;
bool _shatterZ;
private:
CC_DISALLOW_COPY_AND_ASSIGN(ShatteredTiles3D);
};
struct Tile;
/**
@brief ShuffleTiles action.
@details This action make the target node shuffle with many tiles in random order.
You can create the action by these parameters:
duration, grid size, the random seed.
*/
/// 瓦片洗牌动作
class CC_DLL ShuffleTiles : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with grid size, random seed and duration.
* @param duration Specify the duration of the ShuffleTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param seed Specify the random seed.
* @return If the creation success, return a pointer of ShuffleTiles action; otherwise, return nil.
*/
/// 创建一个3D瓦片洗牌动作
static ShuffleTiles* create(float duration, const Size& gridSize, unsigned int seed);
/// 洗牌,传入数组和数组的长度
void shuffle(unsigned int *array, unsigned int len);
Size getDelta(const Size& pos) const;
void placeTile(const Vec2& pos, Tile *t);
// Overrides
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
virtual ShuffleTiles* clone() const override;
CC_CONSTRUCTOR_ACCESS:
ShuffleTiles() {}
virtual ~ShuffleTiles();
/**
* @brief Initializes the action with grid size, random seed and duration.
* @param duration Specify the duration of the ShuffleTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param seed Specify the random seed.
* @return If the Initialization success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, const Size& gridSize, unsigned int seed);
protected:
unsigned int _seed;
unsigned int _tilesCount;
unsigned int* _tilesOrder;
Tile* _tiles;
private:
CC_DISALLOW_COPY_AND_ASSIGN(ShuffleTiles);
};
/**
@brief FadeOutTRTiles action.
@details Fades out the target node with many tiles from Bottom-Left to Top-Right.
*/
/// 3D瓦片渐隐动作,从左下角到右上角渐隐
class CC_DLL FadeOutTRTiles : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the FadeOutTRTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @return If the creation success, return a pointer of FadeOutTRTiles action; otherwise, return nil.
*/
/// 创建一个渐隐动作
static FadeOutTRTiles* create(float duration, const Size& gridSize);
/**
@brief Calculate the percentage a tile should be shown.
@param pos The position index of the tile.
@param time The current percentage of the action.
@return Return the percentage the tile should be shown.
*/
/// 计算当前需要关闭的title
virtual float testFunc(const Size& pos, float time);
/**
@brief Show the tile at specified position.
@param pos The position index of the tile should be shown.
*/
/// 打开某个title
void turnOnTile(const Vec2& pos);
/**
@brief Hide the tile at specified position.
@param pos The position index of the tile should be hide.
*/
/// 关闭title
void turnOffTile(const Vec2& pos);
/**
@brief Show part of the tile.
@param pos The position index of the tile should be shown.
@param distance The percentage that the tile should be shown.
*/
/// 变换title
virtual void transformTile(const Vec2& pos, float distance);
// Overrides
virtual void update(float time) override;
virtual FadeOutTRTiles* clone() const override;
CC_CONSTRUCTOR_ACCESS:
FadeOutTRTiles() {}
virtual ~FadeOutTRTiles() {}
private:
CC_DISALLOW_COPY_AND_ASSIGN(FadeOutTRTiles);
};
/**
@brief FadeOutBLTiles action.
@details Fades out the target node with many tiles from Top-Right to Bottom-Left.
*/
/// 3D瓦片渐隐动作,从右上角到左下角
class CC_DLL FadeOutBLTiles : public FadeOutTRTiles
{
public:
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the FadeOutBLTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @return If the creation success, return a pointer of FadeOutBLTiles action; otherwise, return nil.
*/
static FadeOutBLTiles* create(float duration, const Size& gridSize);
// Overrides
virtual float testFunc(const Size& pos, float time) override;
virtual FadeOutBLTiles* clone() const override;
CC_CONSTRUCTOR_ACCESS:
FadeOutBLTiles() {}
virtual ~FadeOutBLTiles() {}
private:
CC_DISALLOW_COPY_AND_ASSIGN(FadeOutBLTiles);
};
/**
@brief FadeOutUpTiles action.
@details Fades out the target node with many tiles from bottom to top.
*/
/// 瓦片渐隐动作,从下到上
class CC_DLL FadeOutUpTiles : public FadeOutTRTiles
{
public:
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the FadeOutUpTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @return If the creation success, return a pointer of FadeOutUpTiles action; otherwise, return nil.
*/
static FadeOutUpTiles* create(float duration, const Size& gridSize);
virtual void transformTile(const Vec2& pos, float distance) override;
// Overrides
virtual FadeOutUpTiles* clone() const override;
virtual float testFunc(const Size& pos, float time) override;
CC_CONSTRUCTOR_ACCESS:
FadeOutUpTiles() {}
virtual ~FadeOutUpTiles() {}
private:
CC_DISALLOW_COPY_AND_ASSIGN(FadeOutUpTiles);
};
/**
@brief FadeOutDownTiles action.
@details Fades out the target node with many tiles from top to bottom.
*/
/// 瓦片渐隐动作,从上到下
class CC_DLL FadeOutDownTiles : public FadeOutUpTiles
{
public:
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the FadeOutDownTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @return If the creation success, return a pointer of FadeOutDownTiles action; otherwise, return nil.
*/
static FadeOutDownTiles* create(float duration, const Size& gridSize);
// Overrides
virtual FadeOutDownTiles* clone() const override;
virtual float testFunc(const Size& pos, float time) override;
CC_CONSTRUCTOR_ACCESS:
FadeOutDownTiles() {}
virtual ~FadeOutDownTiles() {}
private:
CC_DISALLOW_COPY_AND_ASSIGN(FadeOutDownTiles);
};
/**
@brief TurnOffTiles action.
@details Turn off the target node with many tiles in random order.
*/
/// 瓦片转向动作
class CC_DLL TurnOffTiles : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the TurnOffTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @return If the creation success, return a pointer of TurnOffTiles action; otherwise, return nil.
*/
/// 创建一个瓦片转向动作
static TurnOffTiles* create(float duration, const Size& gridSize);
/**
* @brief Create the action with the grid size and the duration.
* @param duration Specify the duration of the TurnOffTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param seed Specify the random seed.
* @return If the creation success, return a pointer of TurnOffTiles action; otherwise, return nil.
*/
static TurnOffTiles* create(float duration, const Size& gridSize, unsigned int seed);
/**
@brief Shuffle the array specified.
@param array The array will be shuffled.
@param len The size of the array.
*/
/// 洗牌
void shuffle(unsigned int *array, unsigned int len);
/**
@brief Show the tile at specified position.
@param pos The position index of the tile should be shown.
*/
/// 打开某个title
void turnOnTile(const Vec2& pos);
/**
@brief Hide the tile at specified position.
@param pos The position index of the tile should be hide.
*/
/// 关闭某个title
void turnOffTile(const Vec2& pos);
// Overrides
virtual TurnOffTiles* clone() const override;
virtual void startWithTarget(Node *target) override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
TurnOffTiles() {}
virtual ~TurnOffTiles();
/**
* @brief Initializes the action with grid size, random seed and duration.
* @param duration Specify the duration of the TurnOffTiles action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param seed Specify the random seed.
* @return If the Initialization success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, const Size& gridSize, unsigned int seed);
protected:
unsigned int _seed;
unsigned int _tilesCount;
unsigned int* _tilesOrder;
private:
CC_DISALLOW_COPY_AND_ASSIGN(TurnOffTiles);
};
/**
@brief WavesTiles3D action.
@details This action wave the target node with many tiles.
*/
/// 3D瓦片波浪动作
class CC_DLL WavesTiles3D : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with a number of waves, the waves amplitude, the grid size and the duration.
* @param duration Specify the duration of the WavesTiles3D action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param waves Specify the waves count of the WavesTiles3D action.
* @param amplitude Specify the amplitude of the WavesTiles3D action.
* @return If the creation success, return a pointer of WavesTiles3D action; otherwise, return nil.
*/
/// 创建一个3D瓦片波浪动作
static WavesTiles3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);
/**
@brief Get the amplitude of the effect.
@return Return the amplitude of the effect.
*/
/// 得到振幅
inline float getAmplitude() const { return _amplitude; }
/**
@brief Set the amplitude to the effect.
@param amplitude The value of amplitude will be set.
*/
/// 设置振幅
inline void setAmplitude(float amplitude) { _amplitude = amplitude; }
/**
@brief Get the amplitude rate of the effect.
@return Return the amplitude rate of the effect.
*/
/// 得到振幅的频率
inline float getAmplitudeRate() const { return _amplitudeRate; }
/**
@brief Set the ampliture rate of the effect.
@param amplitudeRate The value of amplitude rate will be set.
*/
/// 设置振幅的频率
inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; }
// Override
virtual WavesTiles3D* clone() const override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
WavesTiles3D() {}
virtual ~WavesTiles3D() {}
/**
@brief Initializes an action with duration, grid size, waves count and amplitude.
@param duration Specify the duration of the WavesTiles3D action. It's a value in seconds.
@param gridSize Specify the size of the grid.
@param waves Specify the waves count of the WavesTiles3D action.
@param amplitude Specify the amplitude of the WavesTiles3D action.
@return If the initialization success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, const Size& gridSize, unsigned int waves, float amplitude);
protected:
unsigned int _waves;
float _amplitude;
float _amplitudeRate;
private:
CC_DISALLOW_COPY_AND_ASSIGN(WavesTiles3D);
};
/**
@brief JumpTiles3D action.
@details Move the tiles of a target node across the Z axis.
*/
/// 3D瓦片跳跃动作
class CC_DLL JumpTiles3D : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with the number of jumps, the sin amplitude, the grid size and the duration.
* @param duration Specify the duration of the JumpTiles3D action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param numberOfJumps Specify the jump tiles count.
* @param amplitude Specify the amplitude of the JumpTiles3D action.
* @return If the creation success, return a pointer of JumpTiles3D action; otherwise, return nil.
*/
/// 创建一个3D瓦片跳跃动作
static JumpTiles3D* create(float duration, const Size& gridSize, unsigned int numberOfJumps, float amplitude);
/**
@brief Get the amplitude of the effect.
@return Return the amplitude of the effect.
*/
/// 得到振幅
inline float getAmplitude() const { return _amplitude; }
/**
@brief Set the amplitude to the effect.
@param amplitude The value of amplitude will be set.
*/
/// 设置振幅
inline void setAmplitude(float amplitude) { _amplitude = amplitude; }
/**
@brief Get the amplitude rate of the effect.
@return Return the amplitude rate of the effect.
*/
/// 得到振幅的频率
inline float getAmplitudeRate() const { return _amplitudeRate; }
/**
@brief Set the ampliture rate of the effect.
@param amplitudeRate The value of amplitude rate will be set.
*/
/// 设置振幅的频率
inline void setAmplitudeRate(float amplitudeRate) { _amplitudeRate = amplitudeRate; }
// Override
virtual JumpTiles3D* clone() const override;
virtual void update(float time) override;
CC_CONSTRUCTOR_ACCESS:
JumpTiles3D() {}
virtual ~JumpTiles3D() {}
/**
* @brief Initializes the action with the number of jumps, the sin amplitude, the grid size and the duration.
* @param duration Specify the duration of the JumpTiles3D action. It's a value in seconds.
* @param gridSize Specify the size of the grid.
* @param numberOfJumps Specify the jump tiles count.
* @param amplitude Specify the amplitude of the JumpTiles3D action.
* @return If the initialization success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, const Size& gridSize, unsigned int numberOfJumps, float amplitude);
protected:
unsigned int _jumps;
float _amplitude;
float _amplitudeRate;
private:
CC_DISALLOW_COPY_AND_ASSIGN(JumpTiles3D);
};
/**
@brief SplitRows action.
@details Split the target node in many rows.
Then move out some rows from left, move out the other rows from right.
*/
/// 按行分裂动作
class CC_DLL SplitRows : public TiledGrid3DAction
{
public :
/**
* @brief Create the action with the number of rows and the duration.
* @param duration Specify the duration of the SplitRows action. It's a value in seconds.
* @param rows Specify the rows count should be splited.
* @return If the creation success, return a pointer of SplitRows action; otherwise, return nil.
*/
/// 创建一个按行分裂动作
static SplitRows* create(float duration, unsigned int rows);
// Overrides
virtual SplitRows* clone() const override;
virtual void update(float time) override;
virtual void startWithTarget(Node *target) override;
CC_CONSTRUCTOR_ACCESS:
SplitRows() {}
virtual ~SplitRows() {}
/**
* @brief Initializes the action with the number rows and the duration.
* @param duration Specify the duration of the SplitRows action. It's a value in seconds.
* @param rows Specify the rows count should be splited.
* @return If the creation success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, unsigned int rows);
protected:
unsigned int _rows;
Size _winSize;
private:
CC_DISALLOW_COPY_AND_ASSIGN(SplitRows);
};
/**
@brief SplitCols action.
@details Split the target node in many columns.
Then move out some columns from top, move out the other columns from bottom.
*/
/// 按列分裂动作
class CC_DLL SplitCols : public TiledGrid3DAction
{
public:
/**
* @brief Create the action with the number of columns and the duration.
* @param duration Specify the duration of the SplitCols action. It's a value in seconds.
* @param cols Specify the columns count should be splited.
* @return If the creation success, return a pointer of SplitCols action; otherwise, return nil.
*/
/// 创建一个按列分裂动作
static SplitCols* create(float duration, unsigned int cols);
// Overrides
virtual SplitCols* clone() const override;
/**
* @param time in seconds
*/
virtual void update(float time) override;
virtual void startWithTarget(Node *target) override;
CC_CONSTRUCTOR_ACCESS:
SplitCols() {}
virtual ~SplitCols() {}
/**
* @brief Initializes the action with the number columns and the duration.
* @param duration Specify the duration of the SplitCols action. It's a value in seconds.
* @param cols Specify the columns count should be splited.
* @return If the creation success, return true; otherwise, return false.
*/
/// 初始化
bool initWithDuration(float duration, unsigned int cols);
protected:
unsigned int _cols;
Size _winSize;
private:
CC_DISALLOW_COPY_AND_ASSIGN(SplitCols);
};
// end of actions group
/// @}
NS_CC_END