Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1、CCLayer(层):继承自CCNode、CCTouchDelegate、CCAccelerometerDelegate和CCKeypadDelegate类。

class CC_DLL CCLayer : public CCNode,public CCTouchDelegate,public CCAccelerometerDelegate,public CCKeypadDelegate
{
public:
    CCLayer();
    virtual ~CCLayer();
    virtual bool init();          //初始化函数
    
    static CCLayer *create(void);   //创建一个层
 
    virtual void onEnter();        //进入和退出
    virtual void onExit();
    virtual void onEnterTransitionDidFinish();
    
    virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent);       //触摸事件处理
    virtual void ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);
    virtual void ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent);
    virtual void ccTouchCancelled(CCTouch *pTouch,CCEvent *pEvent);

    virtual void ccTouchesBegan(CCSet *pTouches,CCEvent *pEvent);    //复数触摸事件处理
    virtual void ccTouchesMoved(CCSet *pTouches,CCEvent *pEvent);
    virtual void ccTouchesEnded(CCSet *pTouches,CCEvent *pEvent);
    virtual void ccTouchesCancelled(CCSet *pTouches,CCEvent *pEvent);

    virtual void didAccelerate(CCAcceleration* pAccelerationvalue);    //加速度注册处理
    void registerScriptAccelerateHandler(int nHandler);
    void unregisterScriptAccelerateHandler(void);

    virtual void registerWithTouchDispatcher(void);         //触摸派遣注册相关
    virtual void unregisterScriptTouchHandler(void);
    virtual bool isTouchEnabled();
    virtual void setTouchEnabled(bool value);
    
    virtual void setTouchMode(ccTouchesMode modE);    //触摸模式
    virtual int getTouchMode();
    
    virtual void setTouchPriority(int priority);     //触摸事件优先级,默认为0
    virtual int getTouchPriority();

    virtual bool isAccelerometerEnabled();                //加速度相关处理
    virtual void setAccelerometerEnabled(bool value);
    virtual void setAccelerometerInterval(doublE interval);

    virtual bool isKeypadEnabled();                            //键盘相关
    virtual void setKeypadEnabled(bool value);

    void registerScriptKeypadHandler(int nHandler);        //脚本键盘处理相关
    void unregisterScriptKeypadHandler(void);

    virtual void keyBACkClicked(void);                 //返回键和菜单键处理
    virtual void keymenuClicked(void);
    
    inline CCTouchScriptHandlerEntry* getScriptTouchHandlerEntry() { return m_pScriptTouchHandlerEntry; };    //相关脚本句柄获取
    inline CCScriptHandlerEntry* getScriptKeypadHandlerEntry() { return m_pScriptKeypadHandlerEntry; };
    inline CCScriptHandlerEntry* getScriptAccelerateHandlerEntry() { return m_pScriptAccelerateHandlerEntry; };
protected:   
    bool m_bTouchEnabled;
    bool m_BACcelerometerEnabled;
    bool m_bKeypadEnabled;
    
private:
    CCTouchScriptHandlerEntry* m_pScriptTouchHandlerEntry;
    CCScriptHandlerEntry* m_pScriptKeypadHandlerEntry;
    CCScriptHandlerEntry* m_pScriptAccelerateHandlerEntry;
    
    int m_nTouchPriority;
    ccTouchesMode m_eTouchMode;
    
    int  excuteScriptTouchHandler(int neventType,CCTouch *pTouch);       //执行脚本句柄
    int  excuteScriptTouchHandler(int neventType,CCSet *pTouches);
};
2、CCApplicationProtocol:应用协议,根据不同平台选择,Windows、Linux等
class CC_DLL CCApplicationProtocol
{
public:

    virtual ~CCApplicationProtocol() {}
    virtual bool applicationDidFinishLaunching() = 0;

    virtual void applicationDidEnterBACkground() = 0;

    virtual void applicationWillEnterForeground() = 0;

    virtual void setAnimationInterval(doublE interval) = 0;

    virtual ccLanguageType getCurrentLanguage() = 0;
    
    virtual TargetPlatform getTargetPlatform() = 0;
};
3、CCApplication:应用程序类,继承自CCApplicationProtocol
class CC_DLL CCApplication : public CCApplicationProtocol
{
public:
    CCApplication();
    virtual ~CCApplication();

    virtual int run();             //运行消息循环
    static CCApplication* sharedApplication();   //获取一个实例指针

    virtual void setAnimationInterval(doublE interval);
    virtual ccLanguageType getCurrentLanguage();
    
    virtual TargetPlatform getTargetPlatform();

    CC_DEPRECATED_ATTRIBUTE void setresourceRootPath(const std::string& rootResDir);   //设置资源路径
    CC_DEPRECATED_ATTRIBUTE const std::string& getresourceRootPath(void);

    void setStartupScriptFilename(const std::string& startupScriptFilE);   //启动脚本相关
    const std::string& getStartupScriptFilename(void)
    {
        return m_startupScriptFilename;
    }

protected:
    HINSTANCE           m_hInstance;
    HACCEL              m_hAccelTable;
    LARGE_IntegeR       m_nAnimationInterval;
    std::string         m_resourceRootPath;
    std::string         m_startupScriptFilename;

    static CCApplication * sm_pSharedApplication;
};
4、#define CC_DEPRECATED_ATTRIBUTE __declspec(deprecated)

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication全部内容,希望文章能够帮你解决Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。