自己动手写cocos2dx游戏引擎(三)——Director对象

前端之家收集整理的这篇文章主要介绍了自己动手写cocos2dx游戏引擎(三)——Director对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

上一节中,最后调用到了APPDelegate中的applicationDidFinishLaunching方法

在applicationDidFinishLaunching方法中,获取到了Director的一个实例。

Director返回的是其子类DisplayLinkDirector的对象,其实现如下:

  1. class Director {
  2. public:
  3. virtual ~Director() {}
  4. static Director* getInstance();
  5. virtual bool init();
  6. };
  7.  
  8. class DisplayLinkDirector : public Director {
  9. public:
  10.  
  11. };
  12.  
  13. static DisplayLinkDirector *s_SharedDirector = NULL;
  14.  
  15. Director* Director::getInstance()
  16. {
  17. if (!s_SharedDirector) {
  18. s_SharedDirector = new DisplayLinkDirector;
  19. s_SharedDirector->init();
  20. }
  21. return s_SharedDirector;
  22. }
  23.  
  24. bool Director::init()
  25. {
  26. return true;
  27. }

在Director的getInstance中,返回了一个静态的子类对象,并调用了其初始化方法


在AppDelegate中调用

  1. #ifndef __APP_DELEGATE__
  2. #define __APP_DELEGATE__
  3.  
  4. #include "Application.h"
  5. #include "Director.h"
  6.  
  7. #include <iostream>
  8.  
  9. class AppDelegate: private Application {
  10. public:
  11. virtual bool applicationDidFinishLaunching() {
  12. std::cout << "delegate applicationDidFinishLaunching" << std::endl;
  13. Director* director = Director::getInstance();
  14. return true;
  15. }
  16. };
  17.  
  18. #endif

添加了两个类Director和其子类DisplayLinkDirector。


附代码:demo3

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