【唠叨】

游戏中两个场景的切换时经常要被用到的,cocos2dx引擎为我们提供了许多场景切换的动画,我感觉有些和PPT的切换很类似,所以感觉很熟悉。如:淡入淡出、翻页、跳入跳出等等。

本节要讲的场景切换CCTransitionScene方式十分丰富,不过内容比较简单,很容易掌握。

【致谢】

http://gl.paea.cn/contents/d4d676f371519df4.html

【3.x】

    (1)去掉 “CC”

    (2)卡牌翻转 TransitionFlip 中的样式 tOrientation

////1: kCCTransitionOrientationLeftOver  (左向右翻转)//2: kCCTransitionOrientationRightOver (右向左翻转)//3: kCCTransitionOrientationUpOver    (下向上翻转)//4: kCCTransitionOrientationDownOver  (上向下翻转)
//

        改为强枚举 TransitionScene::Orientation::

//LEFT_OVER               //左向右翻转RIGHT_OVER              //右向左翻转UP_OVER                 //下向上翻转DOWN_OVER               //上向下翻转
//

(3)其他变化不大。


【场景管理】

在讲场景切换CCTransitionScene之前,先来复习一下场景CCScene的管理。

游戏运行的过程中,每次只能运行一个场景,所以要切换到其他场景的话,需要对场景进行相应的管理。而对场景的管理则是由导演类CCDirector来进行操作的。

1、使用方法

////获取一个单例对象CCDirector::sharedDirector()->replaceScene(newScene);
//

2、场景管理操作

//void runWithScene(CCScene *pScene);  //进入AppDelegate主循环运行的场景,仅在运行第一个场景时调用void pushScene(CCScene *pScene);     //暂停当前场景,push到场景堆栈,运行新场景void popScene();                     //从场景堆栈中pop场景,删除当前场景(不入栈)void popToRootScene();               //从场景堆栈中pop出所有场景,栈底场景替换当前场景,删除当前场景(不入栈)void replaceScene(CCScene *pScene);  //场景替换,删除当前场景(不入栈)void pause();                        //暂停当前场景void resume();                       //恢复被暂停的当前场景void end();                          //终止执行,释放运行中的场景
//

【CCTransitionScene】

CCTransitionScene继承于CCScene,主要用于处理场景之间切换动画的管理。而我们主要关注的是它派生出来个各类场景切换动画效果的子类,及这些子类的使用方法。

由场景管理可知,场景切换有关的函数操作有两个:pushScenereplaceScene

故可以在使用这两个函数进行场景切换时,加入场景切换动画效果,增加游戏的美感。

1、常用的场景切换类

////慢慢淡化到另一场景CCTransitionCrossFade::create(时间,目标场景);//变暗消失后,另一场景慢慢出现CCTransitionFade::create(时间,目标场景);//翻页,true为向前翻页CCTransitionPageTurn::create(时间,目标场景,bool); //变小跳动消失后,另一场景跳动变大出现CCTransitionJumpZoom::create(时间,目标场景);//旋转变小消失后,另一场景旋转变大出现CCTransitionRotoZoom::create(时间,目标场景);//变小消失,同时另一场景变大出现CCTransitionShrinkGrow::create(时间,目标场景);//剥落场景,呈现出另一个场景CCTransitionFadeBL::create(时间,目标场景);   //右上到左下方块消失CCTransitionFadeDown::create(时间,目标场景); //上到下横条消失CCTransitionFadeTR::create(时间,目标场景);   //左下到右上方块消失CCTransitionFadeUp::create(时间,目标场景);   //从下到上横条消失//卡牌翻转//样式(可以不写)://1: kCCTransitionOrientationLeftOver  (左向右翻转)//2: kCCTransitionOrientationRightOver (右向左翻转)//3: kCCTransitionOrientationUpOver    (下向上翻转)//4: kCCTransitionOrientationDownOver  (上向下翻转)CCTransitionFlipAngular::create(时间,目标场景,样式12);     //翻转CCTransitionFlipX::create(时间,目标场景,样式12);           //X轴翻转CCTransitionFlipY::create(时间,目标场景,样式34);           //Y轴翻转CCTransitionZoomFlipAngular::create(时间,目标场景,样式12); //翻转   ,区别是附带回拉效果CCTransitionZoomFlipX::create(时间,目标场景,样式12);       //X轴翻转,区别是附带回拉效果CCTransitionZoomFlipY::create(时间,目标场景,样式34);       //Y轴翻转,区别是附带回拉效果//卡牌(另一场景)叠放,插放在场景上面CCTransitionMoveInB::create(时间,目标场景); //整体从下面插入CCTransitionMoveInL::create(时间,目标场景); //整体从左面插入CCTransitionMoveInT::create(时间,目标场景); //整体从上面插入CCTransitionMoveInR::create(时间,目标场景); //整体从右面插入//刷墙,矩形。(另一个场景像刷墙一样刷出来)CCTransitionProgressHorizontal::create(时间,目标场景); //从左到右CCTransitionProgressVertical::create(时间,目标场景);   //从上到下CCTransitionProgressInOut::create(时间,目标场景);      //从中间到四周CCTransitionProgressOutIn::create(时间,目标场景);      //从四周到中间//刷墙,扇形。(另一个场景像刷墙一样刷出来)CCTransitionProgre***adialCCW::create(时间,目标场景);  //逆时针CCTransitionProgre***adialCW::create(时间,目标场景);   //顺时针//刷墙,分成很多小块。(一小块一小块的随机刷上去)CCTransitionTurnOffTiles::create(时间,目标场景);//滑动,滑出窗口。另一场景滑入窗口CCTransitionSlideInB::create(时间,目标场景);  //向上滑动CCTransitionSlideInL::create(时间,目标场景);  //向右滑动CCTransitionSlideInR::create(时间,目标场景);  //向左滑动CCTransitionSlideInT::create(时间,目标场景);  //向下滑动//场景分裂成三块矩形,抽走消失。另一场景也成三块插入出现CCTransitionSplitCols::create(时间,目标场景); //中间块向上,左右块向下抽出CCTransitionSplitRows::create(时间,目标场景); //中间块向右,上下块向左抽出
//

2、使用方法

////创建场景HelloWorld场景CCScene* scene = HelloWorld::scene();//创建场景切换方式CCTransitionScene* ts = CCTransitionJumpZoom::create(2, scene);//切换场景CCDirector::sharedDirector()->replaceScene(ts);
//

【代码实战】

请参考官方给出的TestCpp项目中相关知识来学习,里面讲的很详细。

转载于:https://blog.51cto.com/shahdza/1547977

cocos2dx基础篇(26)——场景切换CCTransitionScene相关推荐

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) {CCDirecto ...

  2. cocos2dx基础篇(24)——基本动画CCAnimation/CCAnimate

    [唠叨] 基本动画制作需要用到CCAnimation类,用于存储动画相关的信息.以及由CCActionInterval继承的CCAnimate动画动作. 还有一些在创建动画动作的过程中,可能会用到的一 ...

  3. cocos2dx基础篇——音乐音效SimpleAudioEngine

    http://shahdza.blog.51cto.com/2410787/1545820/ [SimpleAudioEngine] 音乐音效是每个游戏中不可或缺的部分,一个好的声音会给玩家留下深刻的 ...

  4. cocos2dx基础篇(23)——进度条CCProgressTimer

    本文出自 "夏天的风" 博客,请务必保留此出处http://shahdza.blog.51cto.com/2410787/1546707 [唠叨] 哎,周围的同学都在搞cocos2 ...

  5. cocos2dx基础篇(6)一-字体标签Label

    cocos2dx提供了三种文字字体的显示:CCLabelTTF(一般字体).CCLabelAtlas(自定义字体).CCLabelBMFont(自定义字体).接下来给大家讲讲这三种字体的使用方法. [ ...

  6. cocos2dx基础篇(9)——触碰事件Touch

    [唠叨] cocos2dx游戏引擎的重点是在于移动设备的跨平台开发,而移动设备上的游戏大部分都是通过屏幕触碰来进行的.比如主菜单的按钮触碰,打飞机中飞机的触碰移动,都需要用到触碰操作.想一想之前讲的菜 ...

  7. cocos2dx基础篇(29)——屏幕适配

    [唠叨] 手机的屏幕大小千差万别,如现在流行的安卓手机屏幕大部分长宽比例为16:9.而iPhone 5S的长宽比例为71:40(接近16:9),也有预测说iPhone 6S的长宽比例也将会是主流的16 ...

  8. cocos2dx基础篇(2)——Win32移植到Android

    [安装工具] JDK Eclipse 或直接下一个 ADT集成开发工具 SDK NDK9r ADT CDT    安装方法自行百度. [正文]    1.由 Cocos2D-X 和 VS2010 环境 ...

  9. cocos2dx基础篇(7) 触碰事件

    cocos2dx游戏引擎的重点是在于移动设备的跨平台开发,而移动设备上的游戏大部分都是通过屏幕触碰来进行的.比如主菜单的按钮触碰,打飞机中飞机的触碰移动,都需要用到触碰操作.想一想之前讲的菜单按钮CC ...

最新文章

  1. 如何关闭idea中反编译文件时的弹框提示?
  2. matlab --- 图像处理基础
  3. oracle 数据执行计划,Oracle 常见的执行计划步骤(explain结果的Description数据参考)...
  4. linux服务器上文件编码格式转化shell
  5. 使用kubeadm安装Kubernetes
  6. 那英、那狗、那年、那事
  7. 百分点董事长苏萌:大数据落地有五大要素
  8. Winfrom 线程实现 http、https 文件下载 显示下载进度详情
  9. AR Camera开发记录(三) -- 替换人脸贴图
  10. Axure8.1破解码 注册码 授权码
  11. 软件测试之如何测试数据?
  12. 安装andriod studio
  13. Youtube字幕下载转SRT字幕
  14. The Boys x PUBGMOBILE 联动火热来袭!来看最新游戏海报
  15. Parallels Desktop 16 Mac版怎么样?Parallels Desktop 16 For Mac评估
  16. Kubernetes kube-proxy 如何与 iptables 完美配合使用
  17. 少儿编程重要吗?数字时代的中小学生是否需要拥有编程这项技能?
  18. Java基础:this关键字可在方法参数和成员变量同名时进行区分
  19. 计算机C语言乘法除法优先级,运算符优先级
  20. sqlite3 图形界面安装

热门文章

  1. 详细介绍nagios基本配置
  2. 遍历Map keySet和entrySet
  3. GitHub 配置及简单使用
  4. webp转换gif_用 WebP 创建尺寸更小、细节更丰富的图片,以此来提高网站的速度...
  5. python项目开发案例集锦_在线分享 | 在 VS Code 中一站式完成 Python 项目开发
  6. 十道解分式方程及答案_100道八年级分式方程及答案.
  7. 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明
  8. 地磅称重软件源码_【漯河衡器】导致地磅称重不准原因及处理措施
  9. java post返回xml数据类型_Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据...
  10. php scsi平台,三大SCSI Target平台PK:让服务器化身SAN