根源孟加拉的雕塑师Sujon将雕塑视作最大的兴趣爱好,在她的眼中,世界是满载情调的,他赏识采纳那个浩大的风貌进行油画,何况长于找寻这一个能够扶植起画面包车型客车要素,比如航空拍录中的湖淀、稻田等等。那几个五彩斑斓的景观,在人物的装点下,显得愈发壮阔。

           Cocos2d-x场景切换自个儿换换换!—-之游戏开采金沙国际平台:《赵子龙要入手》(12)。这里是Evankaka的博客,迎接大家前来商量与调换~~~~~~

金沙国际平台,//慢慢淡化到另一场景

cocos2d-X-3.X 场景与层,cocos2d-X-3.X气象

1情景与层的有关函数

1. void runWithScene(Scene * scene).

     该函数可以运营意况。只好在运营第一个场景时调用该函数。假使已经有三个现象运行,则无法调用该函数。

2. void replaceScene(Scene * scene).

Cocos2d-x场景切换自个儿换换换!—-之游戏开采金沙国际平台:《赵子龙要入手》(12)。    切换到下二个光景。用叁个新的风貌替换当前场馆,当前场地被暂停释放。

3. void pushScene(Scene * scene).

    切换成下一个现象。 将眼下景况挂起放入到宾馆中,然后在切换成下叁个处境。

4 void popScene().

   与pushScene 同盟使用,能够再次来到上叁个风貌。

5 void popToRootScene().

    与pushScene(卡塔尔国 协作使用能够回到根场景。

专一:replaceScene 和pushScene 的行使分别:

replaceScene 会释放和销毁场景。

pushScene 不会释放和销毁场景。原本场景的图景能够维持。 不过游戏中也不能够何况有太多的气象对象运营。

 

  

场景与层,cocos2d-X-3.X场景
1风貌与层的相关函数 1.void runWithScene(Scene * scene卡塔尔(قطر‎.
该函数能够运作意况。只可以在起步第三个场景时调用…

   
  **
 **转发请评释出处

TransitionCrossFade::create(时间,目的场景卡塔尔;//浏览器
rendermode为1或0或2能够

       本文首要讲讲用Cocos
Studio制作的登陆界面,来布署三个层类,然后依照这么些登陆界面包车型大巴接纳,跳转到不一致的情景。个中,本文用到的分界面可参照他事他说加以考查上篇Cocos2d-x使用Cocos
Studio制作分界面并选用—之游戏开采《常胜将军要动手》(11)

//这一场景变暗消失后另一场景稳步现身

cocos2d-x版本:2.2.5

TransitionFade::create(时间,目的场景卡塔尔;//浏览器 rendermode为1或0或2方可

工程情形:windows7+VS2010

//这场景右上角到左下角方块消失到另一场景

张开方式:将工程坐落于cocos2d-x装置目录下的project文件夹下用VS打开

TransitionFadeBL::create(时间,指标场景卡塔尔;//浏览器rendermode为0或2能够

(源码免费下载)

先来拜会效果:

金沙国际平台 1

//这一场景从上到下横条消失到另一场景

生龙活虎、场景切换知识

TransitionFadeDown::create(时间,指标场景State of Qatar;//浏览器rendermode为0或2可以

1 一些常识

   
入口:AppDelegate

   
场景:Scene(由开辟者本身达成美妙绝伦的scene)

   
场景组件:Layer(首要提供组处理的建制)和各类Node(基本要素)

Cocos2d-x场景切换自个儿换换换!—-之游戏开采金沙国际平台:《赵子龙要入手》(12)。   
场景切换:Director很显眼二个简洁明了的游艺基本上只要求和谐团结实现多少个Scene,增添一些Layer和Node进来,再找个极其的地点用Director实行切换就能够。


//这一场景左下角到右上角方块消失到另一场景

2.说明

   
runWithScene(CCScene* scene卡塔尔国:运营游戏,并运转scene
场景。这些法子在主程序运维时第三遍开发银行主场景时调用。(它在AppDelegate中利用到)

   
replaceScene(CCScene* scene卡塔尔(قطر‎:直接使用传入的scene
替换当前场地来切换镜头,当前场景将被保释。那是切换场景时最常用的章程。

    pushScene(CCScene*
scene卡塔尔(قطر‎:在不自由旧场景内部存款和储蓄器的气象下运转新境况,推动新情状也正是在现阶段可以看到的纸上再放一张纸,而早先的纸地方何持不改变。适用项境:

a.推动三个日常被用到的光景,举个例子游戏中的Setting场景。

b.当想要保留最先场景场馆时,而不想保留和加载状态。比方在娱乐进度中查阅排名的榜单,推动名次榜场景时,游戏场景不会持续运转,会被中断。

   
popScene:释放当前情景,再从代实行场景栈中弹出栈顶的现象,并将其设置为当下运作境况。假使栈为空,则间接截至应用。与pushScene
成对使用,能够达到形如由主分界面步入安装分界面,然后回到主分界面包车型大巴功用。

由于每当在拉动气象时,须求确定保证总是有丰硕的附加内存可供推动的情景使用,但这点很难测验。提出要拉动的光景都应有是翩翩的,仅占用一些些的内部存款和储蓄器,而且只弹出自身,而不会推进任何场景

TransitionFadeTHighlander::create(时间,指标场景卡塔尔(قطر‎;//浏览器rendermode为0或2足以

二、自定义登陆分界面

此地平素看代码了,本人把JSON文件换下,再把开关名换下,就足以设置本人的游玩登陆分界面了

Cocos2d-x场景切换自个儿换换换!—-之游戏开采金沙国际平台:《赵子龙要入手》(12)。GameLogin.h

#ifndef __GameLogin_SCENE_H__
#define __GameLogin_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
using namespace gui;//重点要记得,要不会出现error C2065: “SEL_TouchEvent”: 未声明的标识符
class GameLogin : public cocos2d::CCLayer
{
public:
    virtual bool init();  
    static cocos2d::CCScene* scene();
    CREATE_FUNC(GameLogin);

    //开始游戏按钮的回调事件
    void TouchBeginButton(cocos2d::CCObject* obj,gui::TouchEventType type);
    //设置游戏按钮的回调事件
    void TouchSetnButton(cocos2d::CCObject* obj,gui::TouchEventType type);
    //退出游戏按钮的回调事件
    void TouchExitButton(cocos2d::CCObject* obj,gui::TouchEventType type);


};

#endif // __GameLogin_SCENE_H__

GameLogin.cpp

#include "GameLogin.h"
#include "HelloWorldScene.h"//这是游戏界面的头文件
CCScene* GameLogin::scene()
{

    CCScene *scene = CCScene::create();
    GameLogin *layer = GameLogin::create();
    scene->addChild(layer);
    return scene;
}

bool GameLogin::init()
{
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

    //加载cocos studio制作的界面
    gui::TouchGroup* ul = gui::TouchGroup::create(); 
    gui::Layout* equipe_root =dynamic_cast<gui::Layout*>(GUIReader::shareReader()->widgetFromJsonFile("MyLogin_1.ExportJson"));
    ul->addWidget(equipe_root); 
    this->addChild(ul,2);

    //给开始按钮添加事件监听
    gui::Button *Btn_Begin = dynamic_cast<gui::Button*>(equipe_root->getChildByName("Begin_Game"));//Begin_Game为在Cocos Studio中定义的按钮的名称
    Btn_Begin->addTouchEventListener(this,toucheventselector(GameLogin::TouchBeginButton));
    //给设置按钮添加事件监听
    gui::Button *Btn_Set = dynamic_cast<gui::Button*>(equipe_root->getChildByName("Set_Game")); //Set_Game为在Cocos Studio中定义的按钮的名称
    Btn_Set->addTouchEventListener(this,toucheventselector(GameLogin::TouchSetnButton));
    //给开始按钮添加事件监听
    gui::Button *Btn_Exit = dynamic_cast<gui::Button*>(equipe_root->getChildByName("Exit_Game")); //Exit_Game为在Cocos Studio中定义的按钮的名称
    Btn_Exit->addTouchEventListener(this,toucheventselector(GameLogin::TouchExitButton));


    return true;
}
void GameLogin::TouchBeginButton(cocos2d::CCObject* obj,gui::TouchEventType type)
{

      if(type==gui::TouchEventType::TOUCH_EVENT_BEGAN)      
        CCDirector::sharedDirector()->replaceScene(HelloWorld::scene());//进入游戏主界面

}

//设置游戏按钮的回调事件
void GameLogin::TouchSetnButton(cocos2d::CCObject* obj,gui::TouchEventType type)
{

}
//退出游戏按钮的回调事件
void GameLogin::TouchExitButton(cocos2d::CCObject* obj,gui::TouchEventType type)
{
    if(type==gui::TouchEventType::TOUCH_EVENT_BEGAN)   
    CCDirector::sharedDirector()->end();
}

很简短的一个类,往后还足以增添~

//本场景从下到上横条消失到另一场景

三、改变场景和开首化界面

TransitionFadeUp::create(时间,指标场景卡塔尔国;//浏览器rendermode为0或2足以

1 改正开首分界面

开发AppDelegate.cpp或AppDelegate.h,加多头文件#include
“GameLogin.h”

把原来 CCScene *pScene
= HelloWorld::scene();
     改成 CCScene *pScene = GameLogin::scene();

记得在Cocos2d-x游戏暂停、继续玩乐、重新初始分界面包车型地铁贯彻—之游戏开荒《常胜将军要入手》(10)Cocos2d-x场景切换自个儿换换换!—-之游戏开采金沙国际平台:《赵子龙要入手》(12)。此中大家不是概念了个Gamepause类么,里面有个回主分界面包车型客车开关,在此边记得把事件写上去了。

加多头文件#include
“GameLogin.h”

更正函数

//回主界面
void  Gamepause::menuLogin(CCObject* pSender)
{
    CCDirector::sharedDirector()->replaceScene(GameLogin::scene());
}

下边直接运营来看看哈

金沙国际平台 2

//这一场景翻转消失到另一气象(斜上方)

2 带效应的切换

GameLogin.cpp改正函数

void GameLogin::TouchBeginButton(cocos2d::CCObject* obj,gui::TouchEventType type)
{


      if(type==gui::TouchEventType::TOUCH_EVENT_BEGAN)
      {
    //  CCDirector::sharedDirector()->replaceScene(HelloWorld::scene());//进入游戏主界面
         // CCDirector::sharedDirector()->replaceScene(CCTransitionPageTurn::create(2,HelloWorld::scene(),false));//翻页进入游戏主界面
           CCDirector::sharedDirector()->replaceScene(CCTransitionTurnOffTiles::create(2,HelloWorld::scene()));//随机方格消失进入游戏主界面
               //  CCTransitionPageTurn
              //    作用:创建一个翻页的过渡动画
              //    参数1:过渡动作持续的时间
              //    参数2:切换的目标场景的对象
               //    参数3:是否逆向翻页
              // CCTransitionTurnOffTiles
              //    作用:创建一个随机方格消失的过渡动画
              //    参数1:过渡动作的持续时间
              //    参数2:切换的目标场景的对象


      }


}

越多的场景切换效果:

[1]:CCTransitionCrossFade::create(时间,目的场景卡塔尔;

   //逐步淡化到另一场景

[2]:CCTransitionFade::create(时间,目的场景卡塔尔(قطر‎;

   //这场景变暗消失后另一场景稳步现身

[3]:CCTransitionFadeBL::create(时间,指标场景卡塔尔(قطر‎;

   //本场景右上角到左下角方块消失到另一场景

[4]:CCTransitionFadeDown::create(时间,指标场景卡塔尔(قطر‎;

   //本场景从上到下横条消失到另一场景

[5]:CCTransitionFadeT昂Cora::create(时间,目的场景卡塔尔国;

   //这一场景左下角到右上角方块消失到另一场景

[6]:CCTransitionFadeUp::create(时间,指标场景卡塔尔;

   //本场景从下到上横条消失到另一场景

[7]:CCTransitionFlipAngular::create(时间,目的场景,样式 卡塔尔国;

   //本场景翻转消失到另生龙活虎情景(斜上方)

   //样式(能够不写):

   //kCCTransitionOrientationLeftOver(左向右翻转)

   //kCCTransitionOrientationRightOver(右向左翻转)

[8]:CCTransitionFlipX::create(时间,指标场景,样式State of Qatar;

   //这一场景翻转消失到另一场景(X轴)

   //样式(可以不写):

   //kCCTransitionOrientationLeftOver(左向右翻转)

   //kCCTransitionOrientationRightOver(右向左翻转)

[9]:CCTransitionFlipY::create(时间,目标场景State of Qatar;

   //这一场景翻转消失到另后生可畏情状(Y轴)

   //样式(能够不写):

   //kCCTransitionOrientationUpOver(下向上翻转)

   //kCCTransitionOrientationDownOver(上向下翻转)

[10]:CCTransitionJumpZoom::create(时间,指标场景卡塔尔国;

   //这场景跳动消失后另一场景跳动现身

[11]:CCTransitionMoveInB::create(时间,目的场景State of Qatar;

   //另一场景由总体从下边现身

[12]:CCTransitionMoveInL::create(时间,目的场景State of Qatar;

   //另一场景由总体从左侧现身

[13]:CCTransitionMoveInT::create(时间,目的场景卡塔尔(قطر‎;

   //另一场景由总体从地点现身

[14]:CCTransitionMoveIn奇骏::create(时间,目的场景卡塔尔(قطر‎;

   //另一场景由总体从侧面出现

[15]:CCTransitionPageTurn::create(时间,目的场景,bool卡塔尔(قطر‎;

   //翻页切换,bool为true是向前翻。

[16]:CCTransitionProgressHorizontal::create(时间,目的场景卡塔尔国;

   //这一场景从左到右消失同时另一场景现身

[17]:CCTransitionProgressInOut::create(时间,目的场景State of Qatar;

   //本场景从当中间到周围未有同期另一场景出现

[18]:CCTransitionProgressOutIn::create(时间,目的场景卡塔尔(قطر‎;

   //这场景从四周详中路消失同临时间另一场景现身

[19]:CCTransitionProgressRadialCCW::create(时间,目的场景卡塔尔;

   //本场景逆时针消失到另一场景

[20]:CCTransitionProgressRadialCW::create(时间,目的场景卡塔尔;

   //这场景顺时针消失到另一场景

[21]:CCTransitionProgressVertical::create(时间,指标场景State of Qatar;

   //这场景从上到下消失同时另一场景现身

[22]:CCTransitionRotoZoom::create(时间,目的场景State of Qatar;

   //这场景旋转消失后另一场景旋转现身

[23]:CCTransitionShrinkGrow::create(时间,指标场景卡塔尔(قطر‎;

   //这一场景缩短切换来另一场景放大

[24]:CCTransitionSlideInB::create(时间,指标场景卡塔尔;

   //本场景向上海滑稽剧团动到另一场景

[25]:CCTransitionSlideInL::create(时间,目的场景State of Qatar;

   //这场景向右滑动到另一场景

[26]:CCTransitionSlideInCRUISER::create(时间,指标场景State of Qatar;

   //本场景向左滑动到另一场景

[27]:CCTransitionSlideInT::create(时间,指标场景State of Qatar;

   //这一场景向下滑动到另一场景

[28]:CCTransitionSplitCols::create(时间,目的场景State of Qatar;

   //本场景三矩形上下未有后另一场景三矩形上下现身

[29]:CCTransitionSplitRows::create(时间,指标场景State of Qatar;

   //本场景三矩形左右消解后另一场景三矩形左右产出

[30]:CCTransitionTurnOffTiles::create(时间,目的场景卡塔尔;

   //这一场景小方块消失到另一场景

[31]:CCTransitionZoomFlipAngular::create(时间,指标场景,样式卡塔尔;

   //这场景翻转消失到另一气象(斜上方)

   //样式(能够不写):

   //kCCTransitionOrientationLeftOver(左向右翻转)

   //kCCTransitionOrientationRightOver(右向左翻转)

[32]:CCTransitionZoomFlipX::create(时间,指标场景,样式卡塔尔(قطر‎;

   //本场景翻转消失到另一风貌(X轴)

   //样式(能够不写):

   //kCCTransitionOrientationLeftOver(左向右翻转)

   //kCCTransitionOrientationRightOver(右向左翻转)

[33]:CCTransitionZoomFlipY::create(时间,目的场景,样式卡塔尔;

   //本场景翻转消失到另生机勃勃现象(Y轴)

   //样式(能够不写):

   //kCCTransitionOrientationUpOver(下向上翻转)

   //kCCTransitionOrientationDownOver(上向下翻转)

金沙国际平台 1

金沙国际平台 4

TransitionFlipAngular::create(时间,指标场景,样式 State of Qatar;//浏览器 不帮衬

//这场景翻转消失到另一风貌(X轴)

TransitionFlipX::create(时间,指标场景,样式State of Qatar;//浏览器 不扶植

//本场景翻转消失到另后生可畏情景(Y轴)

TransitionFlipY::create(时间,目的场景卡塔尔国;//浏览器 不协理

//这一场景跳动消失后另一场景跳动现身

TransitionJumpZoom::create(时间,目的场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2方可

//另一场景由总体从底下出现

TransitionMoveInB::create(时间,目的场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2得以

//另一场景由总体从左侧现身

TransitionMoveInL::create(时间,目的场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2能够

//另一场景由总体从地点现身

TransitionMoveInT::create(时间,目的场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2方可

//另一场景由总体从侧面出现

TransitionMoveIn奥迪R18::create(时间,指标场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2足以

//翻页切换,bool为true是向前翻。

TransitionPageTurn::create(时间,目的场景,bool卡塔尔(قطر‎;//浏览器
rendermode为0或2能够

//本场景从左到右消失同有的时候间另一场景现身

TransitionProgressHorizontal::create(时间,目的场景卡塔尔;//浏览器
rendermode为1或0或2方可

//本场景从当中间到左近未有相同的时候另一场景现身

TransitionProgressInOut::create(时间,目的场景卡塔尔国;//浏览器
rendermode为1或0或2方可

//这一场景从四邻到西路消失同一时间另一场景出现

TransitionProgressOutIn::create(时间,目的场景State of Qatar;//浏览器
rendermode为1或0或2足以

//这一场景逆时针消失到另一场景

TransitionProgressRadialCCW::create(时间,指标场景卡塔尔国;//浏览器
rendermode为1或0或2得以

//这场景顺时针消失到另一场景

TransitionProgressRadialCW::create(时间,指标场景卡塔尔;//浏览器
rendermode为1或0或2方可

//本场景从上到下消失同一时候另一场景现身

TransitionProgressVertical::create(时间,指标场景卡塔尔;//浏览器
rendermode为1或0或2足以

//本场景旋转消失后另一场景旋转现身

TransitionRotoZoom::create(时间,目的场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2得以

//本场景裁减切换成另一场景放大

TransitionShrinkGrow::create(时间,目的场景卡塔尔国;//浏览器
rendermode为1或0或2能够

//本场景向上海滑稽剧团动到另一场景

TransitionSlideInB::create(时间,指标场景卡塔尔国;//浏览器
rendermode为1或0或2方可

//本场景向右滑动到另一场景

TransitionSlideInL::create(时间,指标场景卡塔尔;//浏览器
rendermode为1或0或2得以

//这场景向左滑动到另一场景

TransitionSlideInEnclave::create(时间,指标场景卡塔尔(قطر‎;//浏览器
rendermode为1或0或2能够

//本场景向下滑动到另一场景

TransitionSlideInT::create(时间,指标场景卡塔尔国;//浏览器
rendermode为1或0或2足以

//本场景三矩形上下未有后另一场景三矩形上下现身

TransitionSplitCols::create(时间,目的场景卡塔尔;//浏览器 rendermode为0或2得以

//这一场景三矩形左右消逝后另一场景三矩形左右并发

TransitionSplitRows::create(时间,目的场景卡塔尔国;//浏览器 rendermode为0或2能够

//本场景小方块消失到另一场景

TransitionTurnOffTiles::create(时间,指标场景State of Qatar;//浏览器
rendermode为0或2足以

//本场景翻转消失到另风流倜傥景色(斜上方)

TransitionZoomFlipAngular::create(时间,指标场景,样式State of Qatar;//浏览器不帮忙

//本场景翻转消失到另一场景(X轴)

TransitionZoomFlipX::create(时间,目标场景,样式State of Qatar;//浏览器不帮忙

//本场景翻转消失到另大器晚成光景(Y轴)

TransitionZoomFlipY::create(时间,目的场景,样式State of Qatar;//浏览器不协理

来源

发表评论

电子邮件地址不会被公开。 必填项已用*标注