cocos2d-x节点(CCActionInstant.h)API

来源:互联网 发布:读写速度测试软件 编辑:程序博客网 时间:2024/05/21 17:48

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-x节点(CCActionInstant.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

// action 的显示、隐藏、翻转、定位

///cocos2d-x-3.0alpha0/cocos2dx/actions// action 的显示、隐藏、翻转、定位#ifndef __CCINSTANT_ACTION_H__#define __CCINSTANT_ACTION_H__#include <string>#include <functional>#include "CCStdC.h"#include "CCAction.h"NS_CC_BEGIN/** * @addtogroup actions * @{ *//** @brief 即时 actions 立即执行 actions. 它们不具备持续时间类似 IntervalAction actions.*/ class CC_DLL ActionInstant : public FiniteTimeAction //<NSCopying>{public:    //    // Overrides    //virtual ActionInstant* clone() const override = 0;    virtual ActionInstant * reverse(void) const override = 0;    virtual bool isDone(void) const override;    virtual void step(float dt) override;    virtual void update(float time) override;};/** @brief Show the node*/class CC_DLL Show : public ActionInstant{public:    /** 分配并初始化 action */    static Show * create();    Show(){}    //    // Overrides    //    virtual void update(float time) override;    virtual ActionInstant* reverse(void) const override;virtual Show* clone() const override;};/** @brief Hide the node*/class CC_DLL Hide : public ActionInstant{public:    /** 分配并初始化 action */    static Hide * create();    Hide(){}    //    // Overrides    //    virtual void update(float time) override;virtual ActionInstant* reverse() const override;virtual Hide* clone() const override;};/** @brief 切换的节点的可见性*/class CC_DLL ToggleVisibility : public ActionInstant{public:    /** 分配并初始化 action */    static ToggleVisibility * create();    ToggleVisibility(){}    //    // Overrides    //    virtual void update(float time) override;virtual ToggleVisibility* reverse() const override;virtual ToggleVisibility* clone() const override;};/** @brief Remove the node*/class CC_DLL RemoveSelf : public ActionInstant{public:/** 创建 action */static RemoveSelf * create(bool isNeedCleanUp = true);    RemoveSelf():_isNeedCleanUp(true){}/** init the action */bool init(bool isNeedCleanUp);//    // Override    //virtual void update(float time) override;virtual RemoveSelf* clone() const override;virtual RemoveSelf* reverse() const override;protected:bool _isNeedCleanUp;};/** @brief 水平翻转精灵@since v0.99.0*/class CC_DLL FlipX : public ActionInstant{public:    /** create the action */    static FlipX * create(bool x);    FlipX()        :_flipX(false)    {}    /** init the action */    bool initWithFlipX(bool x);    //    // Overrides    //    virtual void update(float time) override;virtual FlipX* reverse() const override;virtual FlipX* clone() const override;protected:    bool    _flipX;};/** @brief 垂直翻转精灵@since v0.99.0*/class CC_DLL FlipY : public ActionInstant{public:    /** create the action */    static FlipY * create(bool y);    FlipY()        :_flipY(false)    {}    /** init the action */    bool initWithFlipY(bool y);    //    // Overrides    //    virtual void update(float time) override;virtual FlipY* reverse() const override;virtual FlipY* clone() const override;protected:    bool    _flipY;};/** @brief 把节点放置在一个特定的位置*/class CC_DLL Place : public ActionInstant //<NSCopying>{public:    Place(){}    /** 使用 position 创建一个 action */    static Place * create(const Point& pos);    /** 使用 position 初始化一个 action */    bool initWithPosition(const Point& pos);    //    // Overrides    //    virtual void update(float time) override;virtual Place* reverse() const override;virtual Place* clone() const override;protected:    Point _position;};/** @brief 调用一个 'callback'*/class CC_DLL CallFunc : public ActionInstant //<NSCopying>{public:/** 使用 std::function<void()> 的回调类型 创建一个 action. 这是创建 callback 的首选方法.     * 当这个函数绑定到 js or lua,输入参数会改变     * In js: var create(var func, var this, var [data]) or var create(var func)     * In lua:local create(local funcID) */    static CallFunc * create(const std::function<void()>& func);    /** 使用 callback 创建一个 action     typedef void (Object::*SEL_CallFunc)(); @过时不再需要建议使用新的 API ,可以使用 std::function 代替.     * @js NA     * @lua NA     */    CC_DEPRECATED_ATTRIBUTE static CallFunc * create(Object* pSelectorTarget, SEL_CallFunc selector);public:    /**     * @js ctor     */    CallFunc()        : _selectorTarget(NULL)        , _callFunc(NULL), _function(nullptr)    {    }    /**     * @js NA     * @lua NA     */    virtual ~CallFunc();/** 使用 callback 初始化一个 action     typedef void (Object::*SEL_CallFunc)();    @过时不再需要建议使用新的 API ,可以使用 std::function 代替.    */    CC_DEPRECATED_ATTRIBUTE bool initWithTarget(Object* pSelectorTarget);/** 使用 std::function<void()> 初始化一个 action     * @js NK     * @lua NK */    bool initWithFunction(const std::function<void()>& func);    /** executes(执行) the callback */    virtual void execute();    inline Object* getTargetCallback()    {        return _selectorTarget;    }    inline void setTargetCallback(Object* pSel)    {        if (pSel != _selectorTarget)        {            CC_SAFE_RETAIN(pSel);            CC_SAFE_RELEASE(_selectorTarget);            _selectorTarget = pSel;         }    }    //    // Overrides    //    virtual void update(float time) override;virtual CallFunc* reverse() const override;virtual CallFunc* clone() const override;protected:    /** Target 将会被调用 */    Object*   _selectorTarget;    union    {        SEL_CallFunc    _callFunc;        SEL_CallFuncN    _callFuncN;    };        /** function 将会被调用 */std::function<void()> _function;};/** @brief 把 node 作为 'callback' 的第一个参数N 意味着 Node*/class CC_DLL CallFuncN : public CallFunc{public:    /**使用 std::function<void()> 的回调类型 创建一个 action. 这是创建 callback 的首选方法. */    static CallFuncN * create(const std::function<void(Node*)>& func);    /** 使用 callback 创建一个 action     typedef void (Object::*SEL_CallFuncN)(Node*);     @过时不再需要建议使用新的 API ,可以使用 std::function 代替.    */    CC_DEPRECATED_ATTRIBUTE static CallFuncN * create(Object* pSelectorTarget, SEL_CallFuncN selector);public:    CallFuncN():_functionN(nullptr){}    /** 使用 std::function<void(Node*)> 初始化一个 action  */    bool initWithFunction(const std::function<void(Node*)>& func);    /** 使用 callback 初始化一个 action    typedef void (Object::*SEL_CallFuncN)(Node*);    @过时不再需要建议使用新的 API ,可以使用 std::function 代替.    */    CC_DEPRECATED_ATTRIBUTE bool initWithTarget(Object* pSelectorTarget, SEL_CallFuncN selector);    //    // Overrides    //virtual CallFuncN* clone() const override;    virtual void execute() override;protected:    /** 函数调用时会把 "sender" 作为第一个参数传递进去 */    std::function<void(Node*)> _functionN;};/** @过时不再需要建议使用新的 API ,可以使用 CallFuncN 代替. @brief 把节点作为 'callback' 的第一个参数,Node 的数据数据作为第二个参数 * ND means: Node and Data. Data is void *, 它可能是任何东西. */class CC_DLL  __CCCallFuncND : public CallFunc{public:    /** 使用 callback、作为参数传递的数据 创建一个 action */    CC_DEPRECATED_ATTRIBUTE static __CCCallFuncND * create(Object* selectorTarget, SEL_CallFuncND selector, void* d);    protected:    /** 使用 callback、作为参数传递的数据 初始化一个 action */    bool initWithTarget(Object* selectorTarget, SEL_CallFuncND selector, void* d);    public:    //    // Overrides    //virtual __CCCallFuncND* clone() const override;    virtual void execute() override;    protected:    SEL_CallFuncND _callFuncND;    void* _data;};/** @过时不再需要建议使用新的 API ,可以使用 CallFuncN 代替. @brief object 作为 'callback' 的第一个参数 O means Object. @since v0.99.5 */class CC_DLL __CCCallFuncO : public CallFunc{public:    /** 使用 callback 创建一个 action          typedef void (Object::*SEL_CallFuncO)(Object*);     */    CC_DEPRECATED_ATTRIBUTE static __CCCallFuncO * create(Object* selectorTarget, SEL_CallFuncO selector, Object* object);    /**     * @js ctor     */    __CCCallFuncO();    /**     * @js NA     * @lua NA     */    virtual ~__CCCallFuncO();    protected:    /** 使用 callback 初始化一个 action          typedef void (Object::*SEL_CallFuncO)(Object*);     */    bool initWithTarget(Object* selectorTarget, SEL_CallFuncO selector, Object* object);    public:    //    // Overrides    //virtual __CCCallFuncO* clone() const override;    virtual void execute() override;        Object* getObject() const;    void setObject(Object* obj);    protected:    /** object 作为参数传递 */    Object* _object;    SEL_CallFuncO _callFuncO;};// end of actions group/// @}NS_CC_END#endif //__CCINSTANT_ACTION_H__


原创粉丝点击