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);//触摸事件优先级,默认为0virtual 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:HINSTANCEm_hInstance;HACCELm_hAccelTable;LARGE_INTEGERm_nAnimationInterval;std::stringm_resourceRootPath;std::stringm_startupScriptFilename;static CCApplication * sm_pSharedApplication;};4、#define CC_DEPRECATED_ATTRIBUTE __declspec(deprecated)

每一发奋努力的背后,必有加倍的赏赐。

x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication

相关文章:

你感兴趣的文章:

标签云: