编辑: 向日葵8AS | 2016-08-20 |
//窗口启动完成 ????? virtual void applicationDidEnterBackground();
//窗口进入后台 ????? virtual void applicationWillEnterForeground();
//窗口恢复?};
#endif // _APP_DELEGATE_H_ 在这几个方法中,就可以做我们要做的事情了. applicationDidFinishLaunching启动完成 ???? 加载游戏,播放音乐 applicationDidEnterBackground进入背景 ?? 音乐暂停,游戏暂停 applicationWillEnterForeground恢复窗口 ?音乐继续,游戏继续 可能,你会想,如果应用退出,我想保留游戏数据如何? 试者找找ccApplication中还有哪些方法. bool AppDelegate::applicationDidFinishLaunching(CCDirector *pDirector = CCDirector::sharedDirector();
//初始化导演,他是引擎的老大 ??? pDirector->
setOpenGLView(CCEGLView::sharedOpenGLView());
//绑定opengles窗口,可见,我们可以自定义openGLView?????TargetPlatform target = getTargetPlatform();
?? //获取当前平台,这个功能不错?????? if (target == kTargetIpad)CCFileUtils::sharedFileUtils()->
setResourceDirectory( iphonehd );
//不同平台可以指定不同资源目录?CCEGLView::sharedOpenGLView()->
setDesignResolutionSize(960, 640, kResolutionNoBorder)else if (target == kTargetIphone)if (true == CCDirector::sharedDirector()->
enableRetinaDisplay(true)) //大图资源适配?CCFileUtils::sharedFileUtils()->
setResourceDirectory( iphonehd else CCFileUtils::sharedFileUtils()->
setResourceDirectory( iphone else android, windows, blackberry, linux or mac?CCFileUtils::sharedFileUtils()->
setResourceDirectory( iphonehd CCEGLView::sharedOpenGLView()->
setDesignResolutionSize(960, 640, kResolutionNoBorder);
???? } ??? pDirector->
setDisplayStats(true);
//是否显示FPS?( 每秒绘制多少帧,最高60) ??? // set FPS. the default value is 1.0/60 if you don'
t call this???? pDirector->
setAnimationInterval(1.0 / 60);
? //设置FPS 在cocos2d-x 启动后内部封装了FPS的逻辑,虽然helloWorld图片没变化,但其实一直在重绘. ??? //?创建一个场景???? CCScene *pScene = HelloWorld::scene();
??? //?显示这个场景到窗口,必然所有的绘制在场景中定义的???? pDirector->
runWithScene(pScene);
??? return true;
?} #ifndef __HELLOWORLD_SCENE_H__?#define __HELLOWORLD_SCENE_H__ #include cocos2d.h class HelloWorld : public cocos2d::CCLayer?{?public:???? virtual bool init();
? ??? static cocos2d::CCScene* scene();
???? void menuCloseCallback(CCObject* pSender);
??? void ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent);
??? ?CREATE_FUNC(HelloWorld);
?};
#endif // __HELLOWORLD_SCENE_H__ HelloWorld实际上是一个图层CCLayer,不过CCScene和CCLayer都继承CCNode,所以所有显示在窗口的东西都是CCNode,CCNode通过二阶段构造来初始,所以都有init方法,我们只要记住,在这里完成初始定义图层的资源. bool HelloWorld::init(if ( !CCLayer::init(return false;
CCSize visibleSize = CCDirector::sharedDirector()->
getVisibleSize();
//获取窗口大小???? CCPoint origin = CCDirector::sharedDirector()->
getVisibleOrigin(获取窗口方向 添加一个图片菜单层(所有Node都可以addChild)???? CCMenuItemImage *pCloseItem = CCMenuItemImage::create(CloseNormal.png , //缺省状态?CloseSelected.png ,//选中状态?this,//当前层?menu_selector(HelloWorld::menuCloseCallback));
//消息回掉方法定义???? pCloseItem->
setPosition(ccp(origin.x + visibleSize.width - pCloseItem->
getContentSize().width/2 origin.y + pCloseItem->
getContentSize().height/2));