模拟代码进入过程:

  • main.cpp

     #include <iostream>
    #include "AppDelegate.h"
    #include "CCApplication.h"
    #include "CCApplicationProtocol.h"
    using namespace std; int main()
    {
    AppDelegate app;

    return CCApplication::sharedApplication()->run();
    }
  • AppDelegate.h
     #pragma once
    #include "CCApplication.h"
    class AppDelegate :
    public CCApplication
    {
    public:
    AppDelegate();
    virtual ~AppDelegate(); virtual bool applicationDidFinishLaunching();//子类实现了接口
    };
  • AppDelegate.cpp
    #include "AppDelegate.h"
    #include <Windows.h> AppDelegate::AppDelegate()
    {
    } AppDelegate::~AppDelegate()
    {
    }
    //真正的入口
    bool AppDelegate::applicationDidFinishLaunching()
    {
    MessageBoxA(0, "游戏开始", "提示", 1);
    return false;
    }
  • CCApplication.h
     #pragma once
    #include "CCApplicationProtocol.h" class CCApplication :
    public CCApplicationProtocol
    {
    public:
    CCApplication();
    virtual ~CCApplication(); int run();

    static CCApplication *sharedApplication();
    static CCApplication *sm_pSharedApplication;
    };
  • CCApplication.cpp
     #include "CCApplication.h"
    #include "stddef.h" CCApplication * CCApplication::sm_pSharedApplication = NULL; CCApplication::CCApplication()
    {
    sm_pSharedApplication = this;//注意这个this是子类AppDelegate传过来的
    } CCApplication::~CCApplication()
    {
    }
    //run调用父类的applicationDidFinishLaunching()方法,父类的方法在子类中实现
    16 int CCApplication::run()
    17 {
    18 applicationDidFinishLaunching();
    19 return 0;
    20 }

    CCApplication * CCApplication::sharedApplication()
    {
    if(sm_pSharedApplication != NULL)
    return sm_pSharedApplication;
    }
  • CCApplicationProtocol.h
     #pragma once
    class CCApplicationProtocol
    {
    public:
    CCApplicationProtocol();
    virtual ~CCApplicationProtocol(); virtual bool applicationDidFinishLaunching() = ;
    };
  • CCApplicationProtocol.cpp
    #include "CCApplicationProtocol.h"
    
    CCApplicationProtocol::CCApplicationProtocol()
    {
    } CCApplicationProtocol::~CCApplicationProtocol()
    {
    }

运行截图:

3.cocos代码入口的更多相关文章

  1. Unity3D 代码入口

    最近有人提出一个unity一键导出html项目的设想,所以又回头看了一下unity 发现现在的untiy和我熟悉的有很大的不同了 在看unity的 entity 系统时,注意到,这个系统的入口比较特殊 ...

  2. cocos代码研究(5)Action学习笔记

    理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...

  3. cocos代码研究(1)Node学习笔记

    理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...

  4. cocos代码研究(12)UI之Widget学习笔记

    理论基础 Widget类,所有UI控件的基类. 这类继承自ProtectedNode和LayoutParameterProtocol. 如果你想实现自己的UI控件,你应该继承这个类. 被 VideoP ...

  5. cocos代码研究(7)即时动作子类学习笔记

    理论部分 即时动作是会立即被执行的动作.他们没有持续时间动作(ActionInterval)的持续时间属性.继承自 FiniteTimeAction.被 CallFunc, FlipX, FlipY, ...

  6. cocos代码研究(6)有限时间动作类(FiniteTimeAction)学习笔记

    理论部分 有限时间动作类继承自Action类,被 ActionInstant(即时动作) , 以及 ActionInterval(持续动作) 继承. 即时动作是会立即被执行的动作,被 CallFunc ...

  7. cocos代码研究(2)Label学习笔记

    理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...

  8. cocos代码研究(17)Widget子类RadioButtonGroup学习笔记

    理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...

  9. cocos代码研究(16)Widget子类RadioButton学习笔记

    理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...

随机推荐

  1. 【DNN 系列】 DNN是什么

    DNN平台 这个DNN平台是一个开放的.可扩展的.安全的.可扩展的内容管理系统和ASP.NET.世界各地的数十万商户,从地方小企业到全球1000强企业,取决于DNN平台作为他们网站的编辑环境. 这个网 ...

  2. Generic type test java

    package test; public class GenericTest { public class Room<T> { private T t; public void add(T ...

  3. cal---显示日历

    cal命令用于显示当前日历,或者指定日期的日历. 语法 cal(选项)(参数) 选项 -l:显示单月输出: -3:显示临近三个月的日历: -s:将星期日作为月的第一天: -m:将星期一作为月的第一天: ...

  4. iptables指南

    在了解iptables之前我们先了解一下 防火墙 的概念防火墙是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网,防火墙也是一种位于内部网络与外部网络之间的网络安全系统 ...

  5. 三种记录 MySQL 所执行过的 SQL 语句的方法

    程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 ...

  6. vmware下minimum安装centos后配置网络

    原文出处:http://www.cnblogs.com/lanhj/p/3785553.html 昨晚用vmware安装centos时选择minimum安装,目的熟悉基本配置. 上来想yum一个vim ...

  7. 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

    上一篇已经介绍了Android种Bitmap和Canvas的使用,以下我们来写一个详细实例 http://blog.csdn.net/zhaoyazhi2129/article/details/321 ...

  8. cocoapods的安装,使用,卸载,以及你可能会遇到的坑..

    首先, 不会用cocoapods的话如过你接手某些新项目是用cocoapods写的你会疯, 其次他真的非常好用, 当然某些坑也是存在的,比方你用它导入了AFNetwork然后你须要改动一些AF的内部的 ...

  9. 为OLED屏添加GUI支持2:2D图形库

    为OLED屏添加GUI支持2:2D图形库 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...

  10. 35.QQ大数据模型

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...