cocos2dx进阶学习之CCLayer

时间:2023-03-09 18:20:36
cocos2dx进阶学习之CCLayer

继承关系

CCLayer -> CCNode,CCTouchDelegate,CCAccelerometerDelegate,CCKeypadDelegate

CCLayer在cocos2dx中抽象的是一个层,场景的一部分,CCLayer的父类很多,除了CCNode之外

还有CCTouchDelegate,CCAccelerometerDelegate,CCKeypadDelegate,这三个类都是用户输入处理代理

所以CCLayer在场景中,专门负责接收和处理用户的输入。

函数

static CCLayer *create(void);

创建一个Layer

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 registerScriptTouchHandler(int nHandler, bool bIsMultiTouches = false, int nPriority = INT_MIN, bool bSwallowsTouches = false);

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);

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; };

获取脚本入口