#ifndef __APP_DELEGATE_H__#define __APP_DELEGATE_H__#include "CCApplication.h"//CCApplication.h能根据平台打开对应的平台头文件/**@brief The cocos2d Application.The reason for implement as private inheritance is to hide some interface call by CCDirector.*/class AppDelegate : private cocos2d::CCApplication{public: AppDelegate(); virtual ~AppDelegate(); /** @brief Implement for initialize OpenGL instance, set source path, etc... */ virtual bool initInstance(); /** @brief Implement CCDirector and CCScene init code here. @return true Initialize success, app continue. @return false Initialize failed, app terminate. */ virtual bool applicationDidFinishLaunching(); /** @brief The function be called when the application enter background @param the pointer of the application */ virtual void applicationDidEnterBackground(); /** @brief The function be called when the application enter foreground @param the pointer of the application */ virtual void applicationWillEnterForeground();};#endif // __APP_DELEGATE_H__
#include "AppDelegate.h"#include "cocos2d.h"#include "HelloWorldScene.h"#include "CCEGLView.h"USING_NS_CC;AppDelegate::AppDelegate(){}AppDelegate::~AppDelegate(){}bool AppDelegate::initInstance(){ bool bRet = false; do {#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) // Initialize OpenGLView instance, that release by CCDirector when application terminate. // The HelloWorld is designed as HVGA. CCEGLView * pMainWnd = new CCEGLView(); CC_BREAK_IF(! pMainWnd || ! pMainWnd->Create(TEXT("cocos2d: Hello World"), 480, 320));#endif // CC_PLATFORM_WIN32#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) // OpenGLView initialized in testsAppDelegate.mm on ios platform, nothing need to do here.#endif // CC_PLATFORM_IOS#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) // OpenGLView initialized in HelloWorld/android/jni/helloworld/main.cpp // the default setting is to create a fullscreen view // if you want to use auto-scale, please enable view->create(320,480) in main.cpp // if the resources under '/sdcard" or other writeable path, set it. // warning: the audio source should in assets/ // cocos2d::CCFileUtils::setResourcePath("/sdcard");#endif // CC_PLATFORM_ANDROID#if (CC_TARGET_PLATFORM == CC_PLATFORM_WOPHONE) // Initialize OpenGLView instance, that release by CCDirector when application terminate. // The HelloWorld is designed as HVGA. CCEGLView* pMainWnd = new CCEGLView(this); CC_BREAK_IF(! pMainWnd || ! pMainWnd->Create(320,480, WM_WINDOW_ROTATE_MODE_CW));#ifndef _TRANZDA_VM_ // on wophone emulator, we copy resources files to Work7/NEWPLUS/TDA_DATA/Data/ folder instead of zip file cocos2d::CCFileUtils::setResource("HelloWorld.zip");#endif#endif // CC_PLATFORM_WOPHONE#if (CC_TARGET_PLATFORM == CC_PLATFORM_MARMALADE) // MaxAksenov said it's NOT a very elegant solution. I agree, haha CCDirector::sharedDirector()->setDeviceOrientation(kCCDeviceOrientationLandscapeLeft);#endif#if (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) // Initialize OpenGLView instance, that release by CCDirector when application terminate. // The HelloWorld is designed as HVGA. CCEGLView * pMainWnd = new CCEGLView(); CC_BREAK_IF(! pMainWnd || ! pMainWnd->Create("cocos2d: Hello World", 800, 480,480, 320)); CCFileUtils::setResourcePath("../Resource/");#endif // CC_PLATFORM_LINUX#if (CC_TARGET_PLATFORM == CC_PLATFORM_BADA) CCEGLView * pMainWnd = new CCEGLView(); CC_BREAK_IF(! pMainWnd|| ! pMainWnd->Create(this, 480, 320)); pMainWnd->setDeviceOrientation(Osp::Ui::ORIENTATION_LANDSCAPE); CCFileUtils::setResourcePath("/Res/");#endif // CC_PLATFORM_BADA#if (CC_TARGET_PLATFORM == CC_PLATFORM_QNX) CCEGLView * pMainWnd = new CCEGLView(); CC_BREAK_IF(! pMainWnd|| ! pMainWnd->Create(480, 320)); CCFileUtils::setResourcePath("./app/native/Resource");#endif // CC_PLATFORM_QNX bRet = true; } while (0); return bRet;}bool AppDelegate::applicationDidFinishLaunching(){ // initialize director CCDirector *pDirector = CCDirector::sharedDirector(); pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView()); // enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.// pDirector->enableRetinaDisplay(true); // turn on display FPS pDirector->setDisplayFPS(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object CCScene *pScene = HelloWorld::scene(); // run pDirector->runWithScene(pScene); return true;}// This function will be called when the app is inactive. When comes a phone call,it's be invoked toovoid AppDelegate::applicationDidEnterBackground(){ CCDirector::sharedDirector()->pause();}// this function will be called when the app is active againvoid AppDelegate::applicationWillEnterForeground(){ CCDirector::sharedDirector()->resume();}
1