场景转换(Transitions)

Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。

场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类。如TransitionFadeDown、TransitionPageTurn、TransitionJumpZoom等等。

下图是TransitionScene的类关系图:

主要的切换特效有:

  • TransitionRotoZoom 旋转进入
  • TransitionJumpZoom 跳动进入
  • TransitionPageTurn 翻页效果进入
  • TransitionRadialCCW 钟摆效果
  • TransitionMoveInL / TransitionMoveInR / TransitionMoveInT / TransitionMoveInB 左侧/右侧/顶部/底部进入
  • TransitionSlideInL/TransitionSlideInR/TransitionSlideInT/TransitionSlideInB 分别从左侧/右侧/顶部/底部滑入
  • TransitionShrinkGrow 交替进入
  • TransitionFlipX/TransitionFlipY x轴翻入(左右)/ y轴翻入(上下)
  • TransitionFlipAngular 左上右下轴翻入
  • TransitionZoomFlipX/TransitionZoomFlipY x轴翻入放大缩小效果(左右)/ y轴翻入放大缩小效果(上下)
  • TransitionFadeTR /TransitionFadeBL/TransitionFadeUp/TransitionFadeDown 小方格右上角显示进入/ 小方格左下角显示进入/ 横条向上显示进入/ 横条向下显示进入
  • TransitionSplitCols / TransitionSplitRows 竖条切换进入/ 横条切换进入
  • TransitionZoomFlipAngular 左上右下轴翻入放大缩小效果
  • TransitionFade 渐隐进入
  • TransitionCrossFade 渐变进入
  • TransitionTurnOffTiles 小方格消失进入
  • TransitionRadialCCW/TransitionRadialCW 扇面展开收起

等等,更多效果可查看官方API

场景转换的实现:

auto transitions = TransitionMoveInL::create(0.2f, scene);
Director::getInstance()->replaceScene(transitions);

场景的转换是由Director类来控制的,通过调用Director类的replaceScene( Scene scene ) 方法可直接使用传入的scene替换当前场景来切换画面,当前场景会被释放,它是切换场景时最常用的方法。

前面说过,场景转换的一系列类都继承于Scene类,所以可以创建一个转场类替代scene,从而实现各种转场的效果。

`static TransitionMoveInL create(float t, Scene* scene);`方法中t表示转场到scene的时间。

以上代码的效果图如下:

时间: 2024-10-09 20:37:29

场景转换(Transitions)的相关文章

(10)场景转换(Transitions)

Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力.例如:淡入淡出,放大缩小,旋转,跳动等.从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果. 场景之间通过TransitionScene系列类来实现过渡跳转的效果.TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类.如TransitionFadeDown.TransitionPageTurn.TransitionJumpZoom等等. 下图是Transi

Quick Cocos2dx 场景转换问题

项目结构是这样子的: 主场景代码是这样子的: local MainScene = class("MainScene", function() return display.newScene("MainScene") end) function MainScene:ctor() self.layer = display.newLayer(); self:addChild(self.layer) self.item0 = ui.newTTFLabelMenuItem({

iOS中的场景转换机制的浅显分析

目前Apple推荐的场景转换的方法有以下几个: 一般的跳转方法: presentViewController Discussion In a horizontally compact environment, the presented view is always full screen. In a horizontally regular environment, the presentation depends on the value in the modalPresentationSt

unity 3D游戏场景转换

//////////////////2015/07/07//////// /////////////////by xbw/////////////// ///////////////环境 unity 4.6.1// 当需要多个场景时,就用到了场景转换, 这里呢,我有两个场景,一个move(开场镜头),另一个second(游戏场景): 要想运行完开长镜头后接着运行游戏场景,需要用到一个函数::: Application.LoadLevel("second");引号里变是需要运行的场景,即

Android 知识要点整理(11)----Scenes and Transitions(场景和变换)

除了常规的动画(帧动画.补间动画.属性动画)等作用于单个控件的动画,Android 还提供了一种类似的动画的功能,用于在两个不同的布局切换时提供过渡动画效果--Transitions Framework. Transitions Framework 简介 该框架帮助在布局改变的时候增加动画效果,它会在布局发生改变的时候应用一个或多个动画效果于布局中的每个控件.框架具有以下特点: 分组动画 一个或多个动画会作用于每个控件 基于变化的动画 动画是基于初始状态和最终状态的控件的属性值执行的 内置动画

【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现

分类:C#.Android.VS2015: 创建日期:2016-02-21 一.简介 实际上,对于布局文件中的View来说,大多数情况下,Android都会自动保存这些状态,并不需要我们都去处理它.这一节仍以GridView为例(第10章已经介绍过其基本用法了),说明屏幕旋转以及场景切换过程中用GridView呈现的图像是如何自动变换的. 本节主要关注下面的问题: (1)如何通过GridView显示多幅图像. (2)如何使用Activity从一个活动切换到另一个活动,即利用Activity实现场

Scala隐式转换

概述 简单说,隐式转换就是:当Scala编译器进行类型匹配时,如果找不到合适的候选,那么隐式转化提供了另外一种途径来告诉编译器如何将当前的类型转换成预期类型.本文原文出处: http://blog.csdn.net/bluishglc/article/details/50866314 严禁任何形式的转载,否则将委托CSDN官方维护权益! 隐式转换有四种常见的使用场景: 将某一类型转换成预期类型 类型增强与扩展 模拟新的语法 类型类 语法 隐式转换有新旧两种定义方法,旧的定义方法指是的"impli

场景切换

实现场景转换需要通过场景函数实现,场景函数有: runWithScene:运行场景 runWithScene属于CCDirector类的成员函数 函数原型: void runWithScene(CCScene *pScene) 函数参数: *pScene(CCScene型指针) replaceScene:切换场景 replaceScene属于CCDirector类的成员函数 函数原型: void replaceScene(CCScene *pScene); 函数参数: *pScene(CCSce

Xcode7.3.1中SKAudioNode在Scene转换后无声的问题

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在新的Xcode中之前可以正常运行的SKAudioNode代码貌似会有一些小问题,这发生在场景转换后. 比如游戏主场景GameScene在New Game后会创建自身一个新的实例然后转换过去: let newScene = GameScene(fileNamed: "GameScene") newScene!.scaleMode = .AspectF