天天看點

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

擷取腳本入口

繼續閱讀