cocos游戏的真正入口,用C++实现的demo版本
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版本的更多相关文章
- Cocos游戏引擎,让小保安成就大梦想
秦丕胜是大连的一位保安.与非常多自学成才的人一样,2010年,在考上日照职业技术学院一年后便退了学. 因为没有高学历.加上喜欢自由,他来到了大连成为了一名保安.从高中開始,秦丕胜就酷爱代码,他曾自豪地 ...
- 【Cocos游戏实战】功夫小子第八课之游戏打包和相关问题说明
至此,功夫小子系列的Cocos2d-x的实战文章就结束了. 源代码地址: https://github.com/SuooL/KungfuBoy 如须要资源请邮件我 1020935219@qq.com ...
- cocos游戏的例子(摘抄记录,非原创)
3.1 搭建Cocos2d-JS v3.x 开发环境 下载所需的软件包 下载 Cocos Code IDE.目前 Cocos Code IDE 最新发布版本是 1.0.0-RC2.我们为什么 Coco ...
- 【Cocos游戏实战】功夫小子第五课之帮助场景和选关功能的实现
功夫小子之帮助场景和选关功能的实现 转载请注明出处:http://blog.csdn.net/suool/article/details/46661231 本节课的视频教程地址是: hmsr=teac ...
- cocos游戏开发之海岛冒险1
1.首先在cocosStudio软件中新建项目:项目名称IslandAdventure:项目语言:C++ 2.在项目路径F:\cocos\MyProject\IslandAdventure如下: 3. ...
- 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现
CSDN的markdown编辑器是吃屎了么! !.什么玩意.!写了一半写不了东西还全没了,搞个毛线! 本节课的视频教程地址是:第七课在此 假设本教程有帮助到您,希望您能点击进去观看一下,并且如今注冊成 ...
- cocos 游戏开发 (第一天作业)
作业1——控制台游戏菜单 // 游戏菜单.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> ...
- cocos游戏开发小白教程网站
<Quick-Cocos2d-x v3.3小白书系列教程> <Quick-Cocos2d-x初学者游戏教程>
- cocos游戏网址
http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framewor ...
随机推荐
- Oracle 查询字段在什么表
-- 查询字段在什么表 select * from all_tab_cols t where t.column_name='ABC'; -- 查询字段在什么表并且 判断是否是主键 select * f ...
- 根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐
background_image_filename = 'blackground.png' black_mouse_image_filename = 'black.png' white_mouse_i ...
- Android IOS WebRTC 音视频开发总结(二七)-- whatsapp之转发优先
最近看了一篇老外在webrtcHacks上写的文章,主要介绍webrtc和whatsapp的传输机制,蛮好的,加上自己的理解进行总结, 希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Bla ...
- XCode 7.1 安装 Alcatraz包管理器失败的处理
按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...
- c#中$.ajax的使用
<script type="text/javascript"> var telphone = { type: "getphone", &quo ...
- winform自动添加同级目录下可执行文件的快捷方式到右键菜单中
/// <summary> /// 追加同目录下可执行文件到右键菜单中 /// 在form的Load事件中调用:new clsContextMenuStrip(this.FindForm( ...
- 14 个折磨人的 JavaScript 面试题
前端工程师有时候面试时会遇到一类面试官,他们问的问题对于语言本身非常较真儿,往往不是候选人可能期待的面向实际的问题(有些候选人强调能干活就行,至于知不知道其中缘由是无关痛痒的).这类题目,虽然没有逻辑 ...
- Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx
Discuz 官方给出的伪静态规则并不完整,只实现了部分的伪静态设置及规则,分区 gid 仍然是 forum.php?gid=xxx 的形式,对于有强迫症的我是无法忍受的,下面给出分区 gid 的伪静 ...
- 3)Java容器
3)Java容器 Java的集合框架核心主要有三种:List.Set和Map.这里的 Collection.List.Set和Map都是接口(Interface). List lst = new ...
- 【转】DCC32的参数详解
完整的内容如下: // DCC32编译器的设置说明. // Dcc32 [options] filename [options] // DCC32 [操作选项] 文件名称 [操作选项] // -A&l ...