1.cocos游戏的出发点

在main函数中有一句:   return CCApplication::sharedApplication()->run();

2.经过层层深入发现,真正的入口:  bool AppDelegate::applicationDidFinishLaunching()

3.类继承关系图:

4.代码实现:

CCApplicationProtocol的头文件如下,.cpp文件为空

#pragma once
class CCApplicationProtocol
{
public:
/*定义了一个虚接口,用于游戏的真正入口*/
virtual bool applicationDidFinishLaunching() = ;
};

CCApplication.h

#pragma once
#include "CCApplicationProtocol.h" #include <iostream>
using namespace std; class CCApplication :public CCApplicationProtocol
{
public:
CCApplication(); /*run方法*/
virtual int run();
/*返回静态指针*/
static CCApplication* sharedApplication(); protected:
/*静态指针,用于实现单例*/
static CCApplication * sm_pSharedApplication;
};

CCApplication.cpp

#include "CCApplication.h"

/*cpp文件中初始化静态成员*/
CCApplication * CCApplication::sm_pSharedApplication = NULL; CCApplication::CCApplication()
{
/*将子类对象赋值给父类的静态指针*/
sm_pSharedApplication = this;
} CCApplication* CCApplication::sharedApplication()
{
/*实现单例*/
if (sm_pSharedApplication != NULL)
return sm_pSharedApplication;
} int CCApplication::run()
{
/*调用父类的方法,实现游戏的启动*/
applicationDidFinishLaunching();
return ;
}

AppDelegate.h

#pragma once
#include "CCApplication.h"
class AppDelegate :private CCApplication
{
public:
/*实现了继承来的祖父类方法*/
virtual bool applicationDidFinishLaunching();
};

AppDelegate.cpp

#include "AppDelegate.h"

/*实现了继承来的祖父类方法*/
bool AppDelegate::applicationDidFinishLaunching()
{
/*do somethint to iniialize the game*/ cout << "game start" << endl;
return true;
}

测试代码:

#include "AppDelegate.h"

int main()
{
AppDelegate app;
CCApplication::sharedApplication()->run(); system("pause");
return ;
}

cocos游戏的真正入口,用C++实现的demo版本的更多相关文章

  1. Cocos游戏引擎,让小保安成就大梦想

    秦丕胜是大连的一位保安.与非常多自学成才的人一样,2010年,在考上日照职业技术学院一年后便退了学. 因为没有高学历.加上喜欢自由,他来到了大连成为了一名保安.从高中開始,秦丕胜就酷爱代码,他曾自豪地 ...

  2. 【Cocos游戏实战】功夫小子第八课之游戏打包和相关问题说明

    至此,功夫小子系列的Cocos2d-x的实战文章就结束了. 源代码地址: https://github.com/SuooL/KungfuBoy 如须要资源请邮件我 1020935219@qq.com ...

  3. cocos游戏的例子(摘抄记录,非原创)

    3.1 搭建Cocos2d-JS v3.x 开发环境 下载所需的软件包 下载 Cocos Code IDE.目前 Cocos Code IDE 最新发布版本是 1.0.0-RC2.我们为什么 Coco ...

  4. 【Cocos游戏实战】功夫小子第五课之帮助场景和选关功能的实现

    功夫小子之帮助场景和选关功能的实现 转载请注明出处:http://blog.csdn.net/suool/article/details/46661231 本节课的视频教程地址是: hmsr=teac ...

  5. cocos游戏开发之海岛冒险1

    1.首先在cocosStudio软件中新建项目:项目名称IslandAdventure:项目语言:C++ 2.在项目路径F:\cocos\MyProject\IslandAdventure如下: 3. ...

  6. 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现

    CSDN的markdown编辑器是吃屎了么! !.什么玩意.!写了一半写不了东西还全没了,搞个毛线! 本节课的视频教程地址是:第七课在此 假设本教程有帮助到您,希望您能点击进去观看一下,并且如今注冊成 ...

  7. cocos 游戏开发 (第一天作业)

    作业1——控制台游戏菜单 // 游戏菜单.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> ...

  8. cocos游戏开发小白教程网站

    <Quick-Cocos2d-x v3.3小白书系列教程> <Quick-Cocos2d-x初学者游戏教程>

  9. cocos游戏网址

    http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framewor ...

随机推荐

  1. dig out secrets beneath AirSig

    My sister installed AirSig last week. She is so exciting about this new techknology and she won't st ...

  2. Vim中的正则表达式[转]

    来自:http://blog.csdn.net/endall/archive/2007/08/29/1764554.aspx Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操 ...

  3. 隐藏DLL

    先来推广一下QQ群:61618925.欢迎各位爱好编程的加入. 在外挂或者病毒中,经常需要隐藏掉自己注入的DLL,以免被发现.下面就是一个隐藏DLL的通用模块,用的时候只需要加入到相关模块中即可. 详 ...

  4. zedboard上移植OPENCV库

    zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...

  5. 安装CMS遇到php5.3的问题

    DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recomm ...

  6. BF算法和KMP算法(javascript版本)

    var str="abcbababcbababcbababcabcbaba";//主串 var ts="bcabcbaba";//子串 function BF( ...

  7. qemu-kvm简单使用

    qemu-kvm主要有以下几个选项: -snapshot: 创建快照 -m: 指定内存大小 -smp: 指定处理器个数 -cpu: 指定CPU类型 -name: 设置虚拟机名称 -vnc: 使用vnc ...

  8. Azkaban 作业调度

    转载一篇不错的文章:http://www.cnblogs.com/smartloli/p/5191155.html

  9. WordPress 非插件实现拦截无中文留言

    Some Chinese Please 插件可以拦截不带中文字的留言,之前本博客一直在用效果不错,不写入数据库,可有效地减少 spam 对服务器的无谓使用,其实可以将插件简化一下,直接用代码实现.将下 ...

  10. 用delphiXE7 dbExpress Framework提供的功能获取数据表信息

    uses +  Data.DBXMetaDataNames procedure TMainForm.Button2Click(Sender: TObject);var  Cmd: TDBXComman ...