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 ...
随机推荐
- Linux设备模型 学习总结
看LDD3中设备模型一章,觉得思维有些混乱.这里从整体的角度来理理思路.本文从四个方面来总结一些内容: 1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,d ...
- linux 编译,链接和加载
1. 序 最近在折腾各种.so,碰到了一些问题,一开始对于很多错误也没有头绪,茫然不知所措.索性化了一天多时间将<<程序员的自我修养—链接.装载与库>>中部分内容略读了一遍 ...
- 配置DNS域名解析服务器
bind这个DNS域名解析服务器解析好后,执行下面的语句实现开启服务 named -c named.conf & -c指配置脚本named.conf的文件地址 named.conf主要有下面几 ...
- javascritp日期函数总结
getDate()与getDay()的区别: obj.getDate()返回一个月中的某一天:obj.getDay()返回一个星期中的某一天. getYear()与getFullYear()的区别: ...
- zencart安装第三步出现空白
问题描述:在安装zencart时,在第三步同意协议,然后点击下一步时,页面经过漫长的等待后就显示空白. 解决方法:打开php.ini,将max_execution_time = 30 -> ma ...
- IOS多线程(一)
一.绪论 1.进程:平时看到的一个应用程序,即可算作一个线程. 每个进程都有一个PID作为进程ID,有一个Process Name作为进程名字等. 2.线程:一个进程可以有多个线程,而每个线程只可属于 ...
- Data Being Added Conflicts with Existing Data
While developing a page with multiple scrolls levels, and especially when using a grid, you may get ...
- PHPExcel上传sae遇到: -1:fail to get xml content
在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题. 部署代码中遇到问题: -1:fail to get xml conte ...
- 获取屏幕分辨率(C/C++)
C/C++获取屏幕分辨率的方法 int main(int argc, char* argv[]) { // 需要添加头文件: // #include <Windows.h> system( ...
- js-布尔值
1.任何JavaScript的值都可以转换为布尔值 下面这些将会转换为false(假值): undefined null 0 -0 NaN "" //空字符串 所有其他值,包括所有 ...