cocos2d-x节点(CCActionTiledGrid.h)API

本文介绍了cocos2d-x中CCActionTiledGrid.h文件的相关API,包括拆分、淡出、波形、震动等动作效果。建议配合作者的Cocos2d-X权威指南笔记一起学习。
摘要由CSDN通过智能技术生成

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值