1、游戲從main文件開始
image.png
image.png
Application::getInstance()->run() 啟動游戲
2、AppDelegate.h 游戲生命周期
image.png
四個純虛構函數(shù)
(1)applicationDidFinishLaunching 正在運行
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
// 初始化 director
// auto C++ 11 自動類型識別,類似java中的object,typeid(director).name() 能輸出類型
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
glview = GLViewImpl::createWithRect("GameDemo1", cocos2d::Rect(0, 0, designResolutionSize.width, designResolutionSize.height));
#else
glview = GLViewImpl::create("GameDemo1");
#endif
director->setOpenGLView(glview);
}
// 設置是否顯示fps幀數(shù)
director->setDisplayStats(true);
// 1秒60fps
director->setAnimationInterval(1.0f / 60);
// Set the design resolution
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::NO_BORDER);
auto frameSize = glview->getFrameSize();
// if the frame's height is larger than the height of medium size.
if (frameSize.height > mediumResolutionSize.height)
{
director->setContentScaleFactor(MIN(largeResolutionSize.height/designResolutionSize.height, largeResolutionSize.width/designResolutionSize.width));
}
// if the frame's height is larger than the height of small size.
else if (frameSize.height > smallResolutionSize.height)
{
director->setContentScaleFactor(MIN(mediumResolutionSize.height/designResolutionSize.height, mediumResolutionSize.width/designResolutionSize.width));
}
// if the frame's height is smaller than the height of medium size.
else
{
director->setContentScaleFactor(MIN(smallResolutionSize.height/designResolutionSize.height, smallResolutionSize.width/designResolutionSize.width));
}
register_all_packages();
// 創(chuàng)建一個場景
// create a scene. it's an autorelease object
auto scene = HelloWorld::createScene();
// 運行場景
director->runWithScene(scene);
return true;
}
image.png
applicationDidEnterBackground 進入后臺
applicationWillEnterForeground 從后臺切換至前臺