cocos2d-x应用窗口相关源码剖析1
来源:互联网 发布:自制数据采集卡 编辑:程序博客网 时间:2024/05/22 05:21
1 CCApplicationProtocol、CCApplication、AppDelegate类实现源码分析
什么是框架,框架最低要求
理论:
1)框架定义了一些协议(功能的抽象);目的:解耦合,通过函数指针实现。
2)框架实现了这层协议的调用,框架具有集成功能。
3)上层应用按照要求,去实现框架协议
代码兑现:
1)CCApplicationProtocol类定义了一套接口
2)CCApplication 实现了接口规则的调用
3)AppDelegate实现了接口
4)在CCApplication::run()利用多态特性,实现父类代码去调用子类(AppDelegate)重载函数;这也是多态的重要意义。典型的工程开发项目设计思路
问题1:是谁去调用了AppDelegate类的函数重载的函数?
virtualbool applicationDidFinishLaunching();
virtualvoid applicationDidEnterBackground();
virtualvoid applicationWillEnterForeground();
答案:
1)类继承分析:
classCC_DLL CCApplication : public CCApplicationProtocol
class AppDelegate : private cocos2d::CCApplication
AppDelegate->CCApplication->CCApplicationProtocol
2)在CCApplication中实现了协议的调用;
CCApplication::run()函数实现了win消息窗体创建及消息注册。
CCDirector::sharedDirector()->mainLoop();//后续分析
问题2:是谁调用了CCApplication::run()?
return CCApplication::sharedApplication()->run();
问题3:代码实践
23行,AppDelegate app;这句话能去掉吗?
28行,return CCApplication::sharedApplication()->run();换成app.run();问题4:应用程序对象是什么时候被创建的
CCApplication *CCApplication::sm_pSharedApplication = 0;
CCApplication::CCApplication()
: m_hInstance(NULL)
, m_hAccelTable(NULL)
{
m_hInstance =GetModuleHandle(NULL);
m_nAnimationInterval.QuadPart = 0;
CC_ASSERT(! sm_pSharedApplication);
sm_pSharedApplication = this;
}- cocos2d-x应用窗口相关源码剖析1
- cocos2d-x应用窗口相关源码剖析2
- bombing:cocos2d-x应用窗口相关源码剖析3
- cocos2d-x应用窗口相关源码剖析4
- cocos2d-x应用窗口相关源码剖析5-其他细节
- cocos2d-x应用窗口相关源码剖析5-其他细节
- 【cocos2d-x 源码剖析】启动窗口
- cocos2d-x 源码剖析(1)
- cocos2d-x源码剖析引子
- cocos2d-x 源码剖析(7)
- cocos2d-x源码剖析之整体框架
- cocos2d-x源码剖析之场景管理
- cocos2d-x源码剖析之精灵对象
- cocos2d-x 源码剖析(2)
- cocos2d-x 源码剖析(3)
- cocos2d-x 源码剖析(4)
- cocos2d-x 源码剖析(5)
- cocos2d-x 源码剖析(6)
- arm gcc内嵌汇编
- 动态规划之矩阵连乘
- 字符串和数字之间的转换
- 有进位和没进位
- 模型转化
- cocos2d-x应用窗口相关源码剖析1
- centos 下 jdk的安装
- MFC控件积累——CRichEdit控件
- windows batch 常用命令
- 并查集C - More is better
- LayoutInflater的inflate函数用法详解
- IOS:NSTimer
- Struts2中的路径问题
- mvn eclipse:eclipse -Dwtpversion=2.0 -DdownloadSources=true -DdownloadJavadocs=true -DjdkLevel=1.6