4.cocos场景和层的调用

调用关系:

4.cocos场景和层的调用

  • AppDeligate.cpp
     1 bool AppDelegate::applicationDidFinishLaunching() {
     2     // initialize director
     3     auto director = Director::getInstance();
     4     auto glview = director->getOpenGLView();
     5     if(!glview) {
     6         glview = GLViewImpl::createWithRect("MyLayer", Rect(0, 0, 960, 640));
     7         director->setOpenGLView(glview);
     8     }
     9 
    10     director->getOpenGLView()->setDesignResolutionSize(960, 640, ResolutionPolicy::SHOW_ALL);
    11 
    12     // turn on display FPS
    13     director->setDisplayStats(true);
    14 
    15     // set FPS. the default value is 1.0/60 if you don't call this
    16     director->setAnimationInterval(1.0 / 60);
    17 
    18     FileUtils::getInstance()->addSearchPath("res");
    19 
    20     // create a scene. it's an autorelease object
    21     //auto scene = HelloWorld::createScene();
    22 
    23     CCScene *pScene = MyScene::create();
    24 
    25     // run
    26     director->runWithScene(pScene);
    27 
    28     return true;
    29 }
  • MyScene.h
     1 #include "cocos2d.h"
     2 USING_NS_CC;
     3 
     4 class MyScene:public CCScene
     5 {
     6 public:
     7     static MyScene *create();
     8     bool init();
     9     
    10     
    11 };
  • MyScene.cpp
     1 #include "MyScene.h"
     2 #include "MyLayer.h"
     3 
     4 MyScene *MyScene::create()
     5 {
     6     MyScene *pRet = new MyScene;
     7     if (pRet && pRet->init())
     8     {
     9         pRet->autorelease();
    10     }
    11     else
    12     {
    13         delete pRet;
    14         pRet = NULL;
    15     }
    16     return pRet;
    17  }
    18 bool MyScene::init()
    19 {
    20     CCScene::init();
    21     MyLayer *layer = MyLayer::create();
    22     this->addChild(layer);
    23     return true;
    24 }
  • MyLayer.h
    #include "cocos2d.h"
    USING_NS_CC;
    
    class MyLayer : public CCLayer
    {
    public:
    	static MyLayer *create();
    	bool init();
    };
    

      

  • MyLayer.cpp
    #include "MyLayer.h"
    
    
    
    MyLayer *MyLayer::create()
    {
    	MyLayer *pRet = new MyLayer();
    	if (pRet && pRet->init())
    	{
    		pRet->autorelease();
    	}
    	else
    	{
    		delete pRet;
    		pRet = NULL;
    	}
    	return pRet;
     }
    
     bool MyLayer::init()
     {
    	 if (!CCLayer::init())
    	 {
    		 return false;
    	 }
    	 CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    	 CCSprite *spr = CCSprite::create("shop.jpg");
    	 spr->setPosition(ccp(winSize.width / 4, winSize.height / 2));
    	 addChild(spr); 
    	 return true;
    }