博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Cocos2d-x For WP8]Transition 场景切换
阅读量:5885 次
发布时间:2019-06-19

本文共 4162 字,大约阅读时间需要 13 分钟。

    在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在Cocos2d-x中是由CCScene类表示一个场景。那么场景(CCScene)是为游戏中的精灵(CCSprite)提供了舞台,场景由导演(CCDirector)控制,游戏中的所有场景存放在一个栈中,有且只有一个场景可以处于激活状态。直接replaceScene(即不适用动画效果)可以轻松的完成场景的切换,释放掉就场景,加载新场景,几乎不需要时间的过渡,瞬间完成。那么如果我们要在场景转换的过程中用一点动画的效果,就需要用到CCTransition这些场景切换的动画类了,在Cocos2d-x这些场景切换动画类有下面这些:

CCTransitionFade,  //渐隐效果CCTransitionFadeTR, //碎片效果CCTransitionJumpZoom, //跳动效果CCTransitionMoveInL, //从左向右移动CCTransitionPageTurn, //翻页效果CCTransitionRadialCCW, //钟摆效果CCTransitionRotoZoom,//涡轮效果CCTransitionSceneOriented,//CCTransitionShrinkGrow, //渐远效果CCTransitionSlideInL, //左移CCTransitionSplitCols,//上下移动CCTransitionTurnOffTiles//CCTransitionScene : CCScene  基类CCRotoZoomTransition 旋转缩小切换CCJumpZoomTransition 缩小后跳跃切换CCSlideInLTransition 从左向右切换CCSlideInRTransition 从右向左切换CCSlideInTTransition 从上向下切换CCSlideInBTransition 从下向上切换CCShrinkGrowTransition 逐渐缩小切换CCFlipXTransition 已x中间为轴平面式旋转切换CCFlipYTransition 已y中间为轴平面式旋转切换CCFlipAngularTransition 侧翻式旋转切换CCZoomFlipXTransition 缩小后x为轴旋转切换CCZoomFlipYTransition 缩小后y为轴旋转切换CCZoomFlipAngularTransition 缩小侧翻式旋转切换CCFadeTransition 逐渐变暗切换CCCrossFadeTransition   逐渐变暗切换2CCTurnOffTilesTransition 随机方块覆盖切换CCSplitColsTransition 三条上下分开切换CCSplitRowsTransition 三条左右分开切换CCFadeTRTransition 小方块大方块式切换 左下到右上 眩!CCFadeBLTransition 小方块大方块式切换 右上到左下 眩!CCFadeUpTransition 百叶窗从下向上CCFadeDownTransition 百叶窗从上向下CCTransitionRotoZoom : CCTransitionScene 旋转进入CCTransitionJumpZoom : CCTransitionScene 跳动进入CCTransitionMoveInL : CCTransitionScene
从左侧进入CCTransitionMoveInR : CCTransitionMoveInL 从右侧进入CCTransitionMoveInT : CCTransitionMoveInL 从顶部进入CCTransitionMoveInB : CCTransitionMoveInL 从底部进入CCTransitionSlideInL : CCTransitionScene
从左侧滑入CCTransitionSlideInR : CCTransitionSlideInL 从右侧滑入CCTransitionSlideInB : CCTransitionSlideInL 从顶部滑入CCTransitionSlideInT : CCTransitionSlideInL 从底部滑入CCTransitionShrinkGrow : CCTransitionScene
交替进入CCTransitionFlipX : CCTransitionSceneOriented x轴翻入(左右)CCTransitionFlipY : CCTransitionSceneOriented y轴翻入(上下)CCTransitionFlipAngular : CCTransitionSceneOriented 左上右下轴翻入CCTransitionZoomFlipX : CCTransitionSceneOriented x轴翻入放大缩小效果(左右)CCTransitionZoomFlipY : CCTransitionSceneOriented y轴翻入放大缩小效果(上下)CCTransitionZoomFlipAngular :CCTransitionSceneOriented 左上右下轴翻入放大缩小效果CCTransitionFade : CCTransitionScene 变暗变亮进入CCTransitionCrossFade : CCTransitionScene 渐变进入CCTransitionTurnOffTiles : CCTransitionScene
小方格消失进入CCTransitionSplitCols : CCTransitionScene
竖条切换进入CCTransitionSplitRows : CCTransitionSplitCols 横条切换进入CCTransitionFadeTR : CCTransitionScene
小方格右上角显示进入CCTransitionFadeBL : CCTransitionFadeTR 小方格左下角显示进入CCTransitionFadeUp : CCTransitionFadeTR 横条向上显示进入CCTransitionFadeDown : CCTransitionFadeTR 横条向下显示进入

下面我们在Hello World的项目中使用一下场景转换的动画,当用户点击界面的时候就会切换到两外一个场景

//在init方法里面初始化当前的实例bool HelloWorld::init(){    bool bRet = false;    do     {        //CCLayer进行初始化,初始化失败跳出循环        if ( !CCLayer::init() )        {            break;        }        //获取手机屏幕的大小        CCSize size = CCDirector::sharedDirector()->getWinSize();        //创建文字Label        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Times New Roman", 24);        //设置文字Label的位置        pLabel->setPosition( ccp(size.width * 0.5, size.height * 0.5) );         //设置文字Label的颜色        pLabel->setColor(ccc3(160, 80, 5));        //添加到当前的界面上        this->addChild(pLabel, 1);        //接收界面的的触摸事件        setTouchEnabled(true);        bRet = true;    } while (0);    //返回成功    return bRet;}// 屏幕点击事件void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event){    CCScene* s = new CCScene();    CCLayer* pLayer = new TestLayer2();    s->addChild(pLayer);    CCScene* pScene = CCTransitionJumpZoom::create(4.2f, s);    pLayer->release();    s->release();    if (pScene)    {        CCDirector::sharedDirector()->replaceScene(pScene);    }}TestLayer2::TestLayer2(){         CCSize size = CCDirector::sharedDirector()->getWinSize();        CCSprite *b = CCSprite::create("cat.png");        b->setPosition(ccp(0, 0));        b->setPosition(ccp(size.width * 0.5, size.height * 0.5));        this->addChild(b);}TestLayer2::~TestLayer2(){}

运行的效果:

转载地址:http://rolix.baihongyu.com/

你可能感兴趣的文章
前嗅网络的ForeLib数据库介绍
查看>>
exchange 中继
查看>>
电脑蓝屏修复过程
查看>>
vmware ESXI 之重新注册虚拟机
查看>>
Apache Zeppelin安装及使用
查看>>
外网无法访问云主机HDFS文件系统
查看>>
hovercard头像悬浮卡效果
查看>>
mysql5.7.18安装
查看>>
进程间通信(共享内存),五种通信方式简单总结
查看>>
NAT技术和代理服务器
查看>>
xmanager远程连接linux配置
查看>>
Linux下Tomcat启动报Can't connect to X11 window server
查看>>
真正从零开始,TensorFlow详细安装入门图文教程!
查看>>
PHP 中 $_FILES
查看>>
spring IOC
查看>>
linux内核升级
查看>>
Linux下vmstat结果详解
查看>>
USE_HASH
查看>>
Linux Eclipse美化:解决工具栏过大和 Javadoc背景色修改
查看>>
Jeesite中shiro的用法讲解
查看>>