入口类,cocos2d::CCApplication类统一了各平台的差异
AppDelegate.h
#ifndef __APP_DELEGATE_H__ #define __APP_DELEGATE_H__ #include "cocos2d.h" class AppDelegate : private cocos2d::CCApplication { public: AppDelegate(); virtual ~AppDelegate(); virtual bool applicationDidFinishLaunching();//窗口启动完成,加载游戏,开启音乐等① virtual void applicationDidEnterBackground();//进入后台,游戏,音乐暂停等 virtual void applicationWillEnterForeground();//进入前台,游戏,音乐恢复 }; #endif // __APP_DELEGATE_H__
AppDelegate.cpp
bool AppDelegate::applicationDidFinishLaunching() { CCDirector *pDirector = CCDirector::sharedDirector();//初始化导演② pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());//绑定opengl窗口 pDirector->setDisplayStats(true);//是否显示fps pDirector->setAnimationInterval(1.0 / 60);//fps默认为1.0 / 60 CCScene *pScene = HelloWorld::scene();//初始化场景③ pDirector->runWithScene(pScene);//场景run return true; }
HelloWorldScene.h
#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 ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);//按键处理 CREATE_FUNC(HelloWorld);⑤ }; #endif // __HELLOWORLD_SCENE_H__
HelloWorldScene.cpp
#include "HelloWorldScene.h" using namespace cocos2d; CCScene* HelloWorld::scene() { CCScene * scene = NULL; do { scene = CCScene::create(); CC_BREAK_IF(! scene); HelloWorld *layer = HelloWorld::create();④ CC_BREAK_IF(! layer); scene->addChild(layer); } while (0); return scene; } bool HelloWorld::init()⑥ { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCMenuItemImage *pCloseItem = CCMenuItemImage::create(//定义推出菜单 "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); CC_BREAK_IF(! pCloseItem); pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20)); CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); CC_BREAK_IF(! pMenu); this->addChild(pMenu, 1); CCLabelTTF* pLabel = CCLabelTTF::create("Hello World111", "Arial", 24);//定义label CC_BREAK_IF(! pLabel); CCSize size = CCDirector::sharedDirector()->getWinSize(); pLabel->setPosition(ccp(size.width / 2, size.height - 50)); this->addChild(pLabel, 1); CCSprite* pSprite = CCSprite::create("HelloWorld.png"); CC_BREAK_IF(! pSprite); pSprite->setPosition(ccp(size.width/2, size.height/2)); this->addChild(pSprite, 0);
this->setTouchEnabled(true);//设置监听 bRet = true; } while (0); return bRet; } void HelloWorld::menuCloseCallback(CCObject* pSender) { CCDirector::sharedDirector()->end(); }