• 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 instance
    bool 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;
    }
  • 相关阅读:
    6 原型模式
    10 观察者模式
    4 代理模式
    写错误日志
    C#事件的使用
    将int型数字转换成7位字符串,不足的时候,前面补0
    Excel 2010导数据到SQL SERVER 2008
    jquery checkbox
    修改注册表开启IE跨域访问功能
    存储过程一例
  • 原文地址:https://www.cnblogs.com/yufenghou/p/4149097.html
Copyright © 2020-2023  润新知