加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 18:53:25 所属栏目:百科 来源:网络整理
导读:上一节中,最后调用到了APPDelegate中的applicationDidFinishLaunching方法, 在applicationDidFinishLaunching方法中,获取到了Director的一个实例。 Director返回的是其子类DisplayLinkDirector的对象,其实现如下: class Director { public: virtual ~Di

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

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

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

class Director {
    public:
        virtual ~Director() {}
        static Director* getInstance();
        virtual bool init();
};

class DisplayLinkDirector : public Director {
    public:

};

static DisplayLinkDirector *s_SharedDirector = NULL;

Director* Director::getInstance()
{
    if (!s_SharedDirector) {
        s_SharedDirector = new DisplayLinkDirector;
        s_SharedDirector->init();
    }   
    return s_SharedDirector;
}

bool Director::init()
{
    return true;
}

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


在AppDelegate中调用:

#ifndef __APP_DELEGATE__
#define __APP_DELEGATE__

#include "Application.h"
#include "Director.h"

#include <iostream>

class AppDelegate: private Application {
    public:
        virtual bool applicationDidFinishLaunching() {
            std::cout << "delegate applicationDidFinishLaunching" << std::endl; 
            Director* director = Director::getInstance();
            return true;
        }   
};

#endif

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


附代码:demo3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读