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

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

    在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在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(){}

运行的效果:

转载于:https://www.cnblogs.com/linzheng/p/3273547.html

你可能感兴趣的文章
Event Loop
查看>>
new做了些什么?
查看>>
BZOJ3835[Poi2014]Supercomputer——斜率优化
查看>>
POJ-1861 Network
查看>>
Java:从字符串文本中获得数字
查看>>
Airbnb的面经复习笔记
查看>>
去面试啦 面试准备
查看>>
细说SSO单点登录
查看>>
hdu 1754
查看>>
51Nod-1276-岛屿的数量
查看>>
WebService 小实例
查看>>
工作要总分总
查看>>
最小编辑距离
查看>>
学习Sass之安装篇
查看>>
图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)
查看>>
Kingdom Rush 国王保卫战策略心得
查看>>
Django ManyToMany
查看>>
Asp.net笔记(1)
查看>>
20171103html5文档还没有看完!
查看>>
数据结构之二叉树排序(转载http://www.cnblogs.com/mcgrady/p/3280624.html)
查看>>