cocos2d游戏生命周期
来源:互联网 发布:spss软件安装教程 编辑:程序博客网 时间:2024/04/27 23:42
class CC_DLL CCApplicationProtocol
{
public:
virtual ~CCApplicationProtocol() {} //析构函数
virtual bool applicationDidFinishLaunching() = 0; // 程序初始化接口
virtual void applicationDidEnterBackground() = 0; //进入后台接口
virtual void applicationWillEnterForeground() = 0; //进入前台接口
virtual void setAnimationInterval(double interval) = 0; //设置动画间隔
virtual ccLanguageType getCurrentLanguage() = 0; // 获取当前语言
virtual TargetPlatform getTargetPlatform() = 0; //获取当前平台
};
class CC_DLL CCApplication : public CCApplicationProtocol
{
public:
CCApplication();
virtual ~CCApplication();
int run(); //重中之重,消息处理,前端最重要的部分
static CCApplication* sharedApplication(); //返回调用该方法的当前应用指针,该指针指向调用该方法的APP
virtual void setAnimationInterval(double interval); //重载协议
virtual ccLanguageType getCurrentLanguage(); //重载语言接口
virtual TargetPlatform getTargetPlatform(); //重载平台接口
/**
* Sets the Resource root path.
* @deprecated Please use CCFileUtils::sharedFileUtils()->setSearchPaths() instead.
*/
CC_DEPRECATED_ATTRIBUTE void setResourceRootPath(const std::string& rootResDir); //设置启动资源路径
/**
* Gets the Resource root path.
* @deprecated Please use CCFileUtils::sharedFileUtils()->getSearchPaths() instead.
*/
CC_DEPRECATED_ATTRIBUTE const std::string& getResourceRootPath(void);
void setStartupScriptFilename(const std::string& startupScriptFile); //设置启动的脚本文件
const std::string& getStartupScriptFilename(void) //获取启动脚本文件
{
return m_startupScriptFilename;
}
protected: //私有变量
HINSTANCE m_hInstance;
HACCEL m_hAccelTable;
LARGE_INTEGER m_nAnimationInterval;
std::string m_resourceRootPath; //资源启动路径
std::string m_startupScriptFilename; //启动脚本文件
static CCApplication * sm_pSharedApplication; //指针
};
class AppDelegate : private cocos2d::CCApplication //AppDelegate私有继承 CCApplication
{
public:
AppDelegate();
virtual ~AppDelegate();
/**
@brief Implement CCDirector and CCScene init code here.
@return true Initialize success, app continue.
@return false Initialize failed, app terminate.
*/
virtual bool applicationDidFinishLaunching(); //完成启动
virtual void applicationDidEnterBackground(); //进入后台
virtual void applicationWillEnterForeground(); //进入前台
};
cocos2.0以后将applicaionpotol作为第一个基类,然后通过CCApplication继承,然后在通过代理继承并实现
其中消息处理函数run()以及私有变量都是添加在中间层CCApplication里面实现 APPDelegeta只负责实现窗口的切换
Application的主要功能有下面几个:
比如在Win32的main里,就有这么一句:
Application的真正处理是AppDelegate 做的。AppDelegate的功能就是实现CCApplication所声明的那4个接口:
ApplicationProtocol定义了接口然后需通过CCApplication类继承,并添加消息处理函数,但是窗口的处理时通过AppDelegate来实现
参考文档:
http://blog.sina.com.cn/s/blog_a17b071c010133fj.html
- cocos2d游戏生命周期
- 《游戏觉醒之Cocos2d-x3.10游戏开发》- 生命周期
- cocos2d游戏
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- Cocos2d-x生命周期分析
- cocos2d之生命周期
- cocos2d-js 生命周期函数
- 游戏的生命周期
- AndEngine游戏结构生命周期
- Cocos2d-x 场景的生命周期
- 【cocos2d-x + lua】生命周期函数
- cocos2d游戏引擎介绍
- cocos2d游戏 旋转角度
- cocos2d-iPhone暂停游戏
- cocos2D 打地鼠游戏
- cocos2d游戏术语解析
- cocos2d-x 主机游戏
- 在ubuntu上安装MongoDB 来自mongo官方
- 尼坤tiffany恋情曝光 少女时代成员男友揭秘
- 七.4 友元类
- malloc和new的区别
- Java String 下的replaceAll
- cocos2d游戏生命周期
- 探索推荐引擎内部的秘密-第 1 部分: 推荐引擎初探
- java 方法参数变长变量的写法
- An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness
- GCD介绍
- make详解
- IOS block 教程
- UIKit 03、编写代码隐藏iPhone软键盘
- Android图形合成和显示系统---基于高通MSM8k MDP4平台