cocos2d 场景切换

发布时间:2020-07-16 19:01:24 作者:584851044
阅读:259
开发者专用服务器限时活动,0元免费领! 查看>>

开始学习cocos2d啦,加油啊!!!

第一个hello world界面

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

#include "SimpleAudioEngine.h"

class HelloWorld : public cocos2d::CCLayer

{

public:

    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone

    virtual bool init();  

    // there's no 'id' in cpp, so we recommand to return the exactly class pointer

    static cocos2d::CCScene* scene();

    

    // a selector callback

    void menuCloseCallback(CCObject* pSender);

    // implement the "static node()" method manually

    CREATE_FUNC(HelloWorld);

};

#endif  // __HELLOWORLD_SCENE_H__

#include "HelloWorldScene.h"

#include "MyLayer.h"

using namespace cocos2d;

CCScene* HelloWorld::scene()

{

    CCScene * scene = NULL;

    do 

    {

        // 'scene' is an autorelease object

        scene = CCScene::create();

        CC_BREAK_IF(! scene);

        // 'layer' is an autorelease object

        HelloWorld *layer = HelloWorld::create();

        CC_BREAK_IF(! layer);

        // add layer as a child to scene

        scene->addChild(layer);

    } while (0);

    // return the scene

    return scene;

}

// on "init" you need to initialize your instance

bool HelloWorld::init()

{

    bool bRet = false;

    do 

    {

        //////////////////////////////////////////////////////////////////////////

        // super init first

        //////////////////////////////////////////////////////////////////////////

        CC_BREAK_IF(! CCLayer::init());

        //////////////////////////////////////////////////////////////////////////

        // add your codes below...

        //////////////////////////////////////////////////////////////////////////

        // 1. Add a menu item with "X" p_w_picpath, which is clicked to quit the program.

        // Create a "close" menu item with close icon, it's an auto release object.

        CCMenuItemImage *pCloseItem = CCMenuItemImage::create(

            "CloseNormal.png",

            "CloseSelected.png",

            this,

            menu_selector(HelloWorld::menuCloseCallback));

        CC_BREAK_IF(! pCloseItem);

        // Place the menu item bottom-right conner.

        pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));

        // Create a menu with the "close" menu item, it's an auto release object.

        CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);

        pMenu->setPosition(CCPointZero);

        CC_BREAK_IF(! pMenu);

        // Add the menu to HelloWorld layer as a child layer.

        this->addChild(pMenu, 1);

        // 2. Add a label shows "Hello World".

        // Create a label and initialize with string "Hello World".

        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);

        CC_BREAK_IF(! pLabel);

        // Get window size and place the label upper. 

        CCSize size = CCDirector::sharedDirector()->getWinSize();

        pLabel->setPosition(ccp(size.width / 2, size.height - 50));

        // Add the label to HelloWorld layer as a child layer.

        this->addChild(pLabel, 1);

        // 3. Add add a splash screen, show the cocos2d splash p_w_picpath.

        CCSprite* pSprite = CCSprite::create("HelloWorld.png");

        CC_BREAK_IF(! pSprite);

        // Place the sprite on the center of the screen

        pSprite->setPosition(ccp(size.width/2, size.height/2));

        // Add the sprite to HelloWorld layer as a child layer.

        this->addChild(pSprite, 0);

        bRet = true;

    } while (0);

    return bRet;

}

void HelloWorld::menuCloseCallback(CCObject* pSender)

{

    // "close" menu item clicked

   // CCDirector::sharedDirector()->end();

//场景切换

CCDirector::sharedDirector()->replaceScene(CCTransitionSlideInT::create(3.0,CMyLayer::scence()));

}

第二个场景代码

#pragma once

#include "cocos2d.h"

using namespace cocos2d;

class CMyLayer:public CCLayer

{

public:

CMyLayer(void);

~CMyLayer(void);

static CCScene * scence();

virtual bool init();

void CMyLayer::menuCloseCallback(CCObject* pSender);

CREATE_FUNC(CMyLayer);

};

#include "MyLayer.h"

CMyLayer::CMyLayer(void)

{

}

CMyLayer::~CMyLayer(void)

{

}

 CCScene *CMyLayer:: scence()

{

CCScene *pScence = CCScene::create();

CMyLayer *pCMyLayer = CMyLayer::create();

pScence->addChild(pCMyLayer);

return pScence;

}

bool CMyLayer::  init()

{

CCLabelTTF *pLable = CCLabelTTF::create("HI Fighting..!!!","Arial",40);

pLable->setPosition(ccp(200,200));

this->addChild(pLable);

CCMenuItemImage *pCloseItem = CCMenuItemImage::create(

"CloseNormal.png",

"CloseSelected.png",

this,

menu_selector(CMyLayer::menuCloseCallback));

//CC_BREAK_IF(! pCloseItem);

// Place the menu item bottom-right conner.

pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));

// Create a menu with the "close" menu item, it's an auto release object.

CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);

pMenu->setPosition(CCPointZero);

 this->addChild(pMenu, 1);

//CC_BREAK_IF(! pMenu);

return true;

}

void CMyLayer::menuCloseCallback(CCObject* pSender)

{

// "close" menu item clicked

CCDirector::sharedDirector()->end();

//CCDirector::sharedDirector()->replaceScene(CMyLayer::scence());

}

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. 【Cocos2d入门教程二】Cocos2d-x基础概念
  2. 一:Cocos2d基础架构

开发者交流群:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cocos2dx 场景切换 场景切换 ocos2d

上一篇:Centos-automount

下一篇:myql 5.7.21 GTID 组复制

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
开发者交流群×