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

前端之家收集整理的这篇文章主要介绍了Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  1. class CC_DLL CCLayer : public CCNode,public CCTouchDelegate,public CCAccelerometerDelegate,public CCKeypadDelegate
  2. {
  3. public:
  4. CCLayer();
  5. virtual ~CCLayer();
  6. virtual bool init(); //初始化函数
  7. static CCLayer *create(void); //创建一个层
  8. virtual void onEnter(); //进入和退出
  9. virtual void onExit();
  10. virtual void onEnterTransitionDidFinish();
  11. virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent); //触摸事件处理
  12. virtual void ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);
  13. virtual void ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent);
  14. virtual void ccTouchCancelled(CCTouch *pTouch,CCEvent *pEvent);
  15.  
  16. virtual void ccTouchesBegan(CCSet *pTouches,CCEvent *pEvent); //复数触摸事件处理
  17. virtual void ccTouchesMoved(CCSet *pTouches,CCEvent *pEvent);
  18. virtual void ccTouchesEnded(CCSet *pTouches,CCEvent *pEvent);
  19. virtual void ccTouchesCancelled(CCSet *pTouches,CCEvent *pEvent);
  20.  
  21. virtual void didAccelerate(CCAcceleration* pAccelerationValue); //加速度注册处理
  22. void registerScriptAccelerateHandler(int nHandler);
  23. void unregisterScriptAccelerateHandler(void);
  24.  
  25. virtual void registerWithTouchDispatcher(void); //触摸派遣注册相关
  26. virtual void unregisterScriptTouchHandler(void);
  27. virtual bool isTouchEnabled();
  28. virtual void setTouchEnabled(bool value);
  29. virtual void setTouchMode(ccTouchesMode mode); //触摸模式
  30. virtual int getTouchMode();
  31. virtual void setTouchPriority(int priority); //触摸事件优先级,默认为0
  32. virtual int getTouchPriority();
  33.  
  34. virtual bool isAccelerometerEnabled(); //加速度相关处理
  35. virtual void setAccelerometerEnabled(bool value);
  36. virtual void setAccelerometerInterval(double interval);
  37.  
  38. virtual bool isKeypadEnabled(); //键盘相关
  39. virtual void setKeypadEnabled(bool value);
  40.  
  41. void registerScriptKeypadHandler(int nHandler); //脚本键盘处理相关
  42. void unregisterScriptKeypadHandler(void);
  43.  
  44. virtual void keyBackClicked(void); //返回键和菜单键处理
  45. virtual void keyMenuClicked(void);
  46. inline CCTouchScriptHandlerEntry* getScriptTouchHandlerEntry() { return m_pScriptTouchHandlerEntry; }; //相关脚本句柄获取
  47. inline CCScriptHandlerEntry* getScriptKeypadHandlerEntry() { return m_pScriptKeypadHandlerEntry; };
  48. inline CCScriptHandlerEntry* getScriptAccelerateHandlerEntry() { return m_pScriptAccelerateHandlerEntry; };
  49. protected:
  50. bool m_bTouchEnabled;
  51. bool m_bAccelerometerEnabled;
  52. bool m_bKeypadEnabled;
  53. private:
  54. CCTouchScriptHandlerEntry* m_pScriptTouchHandlerEntry;
  55. CCScriptHandlerEntry* m_pScriptKeypadHandlerEntry;
  56. CCScriptHandlerEntry* m_pScriptAccelerateHandlerEntry;
  57. int m_nTouchPriority;
  58. ccTouchesMode m_eTouchMode;
  59. int excuteScriptTouchHandler(int nEventType,CCTouch *pTouch); //执行脚本句柄
  60. int excuteScriptTouchHandler(int nEventType,CCSet *pTouches);
  61. };
2、CCApplicationProtocol:应用协议,根据不同平台选择,Windows、Linux等
  1. class CC_DLL CCApplicationProtocol
  2. {
  3. public:
  4.  
  5. virtual ~CCApplicationProtocol() {}
  6. virtual bool applicationDidFinishLaunching() = 0;
  7.  
  8. virtual void applicationDidEnterBackground() = 0;
  9.  
  10. virtual void applicationWillEnterForeground() = 0;
  11.  
  12. virtual void setAnimationInterval(double interval) = 0;
  13.  
  14. virtual ccLanguageType getCurrentLanguage() = 0;
  15. virtual TargetPlatform getTargetPlatform() = 0;
  16. };
3、CCApplication:应用程序类,继承自CCApplicationProtocol
  1. class CC_DLL CCApplication : public CCApplicationProtocol
  2. {
  3. public:
  4. CCApplication();
  5. virtual ~CCApplication();
  6.  
  7. virtual int run(); //运行消息循环
  8. static CCApplication* sharedApplication(); //获取一个实例指针
  9.  
  10. virtual void setAnimationInterval(double interval);
  11. virtual ccLanguageType getCurrentLanguage();
  12. virtual TargetPlatform getTargetPlatform();
  13.  
  14. CC_DEPRECATED_ATTRIBUTE void setResourceRootPath(const std::string& rootResDir); //设置资源路径
  15. CC_DEPRECATED_ATTRIBUTE const std::string& getResourceRootPath(void);
  16.  
  17. void setStartupScriptFilename(const std::string& startupScriptFile); //启动脚本相关
  18. const std::string& getStartupScriptFilename(void)
  19. {
  20. return m_startupScriptFilename;
  21. }
  22.  
  23. protected:
  24. HINSTANCE m_hInstance;
  25. HACCEL m_hAccelTable;
  26. LARGE_INTEGER m_nAnimationInterval;
  27. std::string m_resourceRootPath;
  28. std::string m_startupScriptFilename;
  29.  
  30. static CCApplication * sm_pSharedApplication;
  31. };
4、#define CC_DEPRECATED_ATTRIBUTE __declspec(deprecated)

猜你在找的Cocos2d-x相关文章