首页 > 代码库 > cocos3 场景切换

cocos3 场景切换

helloworld.cpp

#include "HelloWorldScene.h"USING_NS_CC;Scene* HelloWorld::createScene(){    // ‘scene‘ is an autorelease object    auto scene = Scene::create();        // ‘layer‘ is an autorelease object    auto layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}// on "init" you need to initialize your instancebool HelloWorld::init(){    //////////////////////////////    // 1. super init first    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();    Vec2 origin = Director::getInstance()->getVisibleOrigin();        Sprite* sp=Sprite::create("1.png");    sp->setPosition(visibleSize.width/2,visibleSize.height/2);    addChild(sp);    EventListenerTouchOneByOne* listener=EventListenerTouchOneByOne::create();    listener->onTouchBegan=[sp](Touch *t,Event *e){        if(sp->getBoundingBox().containsPoint(t->getLocation()))        {            Director::getInstance()->replaceScene(ImageScene::createScene());        }        else        {            log("1111");        }        return true;    };    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,sp);    return true;}void HelloWorld::menuCloseCallback(Ref* pSender){#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)    MessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");    return;#endif    Director::getInstance()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)    exit(0);#endif}

imagescene.h

#pragma once#include "cocos2d.h"USING_NS_CC;class ImageScene:public Layer{public:    static Scene* createScene();    virtual bool init();    CREATE_FUNC(ImageScene);};

imagescene.cpp

#include "ImageScene.h"Scene* ImageScene::createScene(){    auto scene = Scene::create();        // ‘layer‘ is an autorelease object    auto layer = ImageScene::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}bool ImageScene::init(){    if(!Layer::init())    {        return false;    }    Sprite* sp=Sprite::create("HelloWorld.png");    sp->setPosition(200,200);    addChild(sp);    return true;}

 

cocos3 场景切换