Cocos2d-X研究之3.0 场景切换特效汇总
- Cocos2d-X研究之3.0 场景切换特效汇总
-
cocos2d-x 3.0中场景切换特效比较多,而且游戏开发中也经常需要用到这些特效,来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用。
场景切换用到导演类Directory,大多数用的都是替换场景,当然也可以用出栈进栈的方式来进行场景的替换,这里以replaceScene来举例。3.0事件分发机制—触摸事件监听不明白的可以看下。
场景切换特效的应用代码:
1 2 3
autoscene=HelloWorld::createScene();//创建待切换的场景
auto transition=TransitionZoomFlipY::create(1.0f,scene);//给场景包装动画特效
Director::getInstance()->replaceScene(transition);//运用导演类来进行切换场景
下面列举下场景切换的动画效果,可以参考上面的代码来运用各个特效,在自己的游戏中适当的运用特效可以起到很好的效果。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798//慢慢淡化到另一场景TransitionCrossFade::create(时间,目标场景);//本场景变暗消失后另一场景慢慢出现TransitionFade::create(时间,目标场景);//本场景右上角到左下角方块消失到另一场景TransitionFadeBL::create(时间,目标场景);//本场景从上到下横条消失到另一场景TransitionFadeDown::create(时间,目标场景);//本场景左下角到右上角方块消失到另一场景TransitionFadeTR::create(时间,目标场景);//本场景从下到上横条消失到另一场景TransitionFadeUp::create(时间,目标场景);//本场景翻转消失到另一场景(斜上方)TransitionFlipAngular::create(时间,目标场景,样式 );//本场景翻转消失到另一场景(X轴)TransitionFlipX::create(时间,目标场景,样式);//本场景翻转消失到另一场景(Y轴)TransitionFlipY::create(时间,目标场景);//本场景跳动消失后另一场景跳动出现TransitionJumpZoom::create(时间,目标场景);//另一场景由整体从下面出现TransitionMoveInB::create(时间,目标场景);//另一场景由整体从左面出现TransitionMoveInL::create(时间,目标场景);//另一场景由整体从上面出现TransitionMoveInT::create(时间,目标场景);//另一场景由整体从右面出现TransitionMoveInR::create(时间,目标场景);//翻页切换,bool为true是向前翻。TransitionPageTurn::create(时间,目标场景,bool);//本场景从左到右消失同时另一场景出现TransitionProgressHorizontal::create(时间,目标场景);//本场景从中间到四周消失同时另一场景出现TransitionProgressInOut::create(时间,目标场景);//本场景从四周到中间消失同时另一场景出现TransitionProgressOutIn::create(时间,目标场景);//本场景逆时针消失到另一场景TransitionProgressRadialCCW::create(时间,目标场景);//本场景顺时针消失到另一场景TransitionProgressRadialCW::create(时间,目标场景);//本场景从上到下消失同时另一场景出现TransitionProgressVertical::create(时间,目标场景);//本场景旋转消失后另一场景旋转出现TransitionRotoZoom::create(时间,目标场景);//本场景缩小切换到另一场景放大TransitionShrinkGrow::create(时间,目标场景);//本场景向上滑动到另一场景TransitionSlideInB::create(时间,目标场景);//本场景向右滑动到另一场景TransitionSlideInL::create(时间,目标场景);//本场景向左滑动到另一场景TransitionSlideInR::create(时间,目标场景);//本场景向下滑动到另一场景TransitionSlideInT::create(时间,目标场景);//本场景三矩形上下消失后另一场景三矩形上下出现TransitionSplitCols::create(时间,目标场景);//本场景三矩形左右消失后另一场景三矩形左右出现TransitionSplitRows::create(时间,目标场景);//本场景小方块消失到另一场景TransitionTurnOffTiles::create(时间,目标场景);//本场景翻转消失到另一场景(斜上方)TransitionZoomFlipAngular::create(时间,目标场景,样式);//本场景翻转消失到另一场景(X轴)TransitionZoomFlipX::create(时间,目标场景,样式);//本场景翻转消失到另一场景(Y轴)TransitionZoomFlipY::create(时间,目标场景,样式);好了,这篇列举了游戏中经常用到的场景切换特效,欢迎大家一起学习,一起进步。
增加一些内容:
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite * sp= CCSprite::create("background1.png");
sp->setPosition(ccp( size.width/2, size.height/2) );
addChild(sp); CCLabelTTF * label = CCLabelTTF::create("点击按钮切换", "", 20);
// label->setPosition(ccp(size.width/2, size.height/2));
label->setColor(ccc3(255, 0, 255));
CCMenuItemLabel * itemLabel = CCMenuItemLabel::create(label, this, menu_selector(HelloWorld::changeScene));
// itemLabel->setPosition(ccp(size.width/2,size.height/2));
CCMenu * menu = CCMenu::create(itemLabel,NULL);
addChild(menu); return true;
} void HelloWorld:: changeScene()
{
CCTransitionScene * reScene = NULL;
CCScene * s = TestLayer::scene();
float t = 1.2f; // CCTransitionJumpZoom
// 作用: 创建一个跳动的过渡动画
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionJumpZoom ::create(t , s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressRadialCCW
// 作用: 创建一个扇形条形式的过渡动画, 逆时针方向
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressRadialCCW::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressRadialCW
// 作用: 创建一个扇形条形式的过渡动画, 顺时针方向
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressRadialCW::create(t,s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressHorizontal
// 作用: 创建一个水平条形式的过渡动画,
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressHorizontal ::create(t,s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressVertical
// 作用: 创建一个垂直条形式的过渡动画,
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressVertical::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressInOut
// 作用: 创建一个由里向外扩展的过渡动画,
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressInOut::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionProgressOutIn
// 作用: 创建一个由外向里扩展的过渡动画,
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionProgressOutIn::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionCrossFade
// 作用:创建一个逐渐透明的过渡动画
// 参数1:过渡动作的时间
// 参数2:切换到目标场景的对象
// reScene = CCTransitionCrossFade::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionPageTurn
// 作用:创建一个翻页的过渡动画
// 参数1:过渡动作持续的时间
// 参数2:切换的目标场景的对象
// 参数3:是否逆向翻页
// reScene = CCTransitionPageTurn::create(t, s, false);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFadeTR
// 作用:创建一个部落格过渡动画, 从左下到右上
// 参数1:过渡动作持续的时间
// 参数2:切换的目标场景的对象
// reScene =CCTransitionFadeTR::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFadeBL
// 作用:创建一个部落格过渡动画, 从右上到左下
// 参数1:过渡动作持续的时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionFadeBL::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFadeUp
// 作用:创建一个从下到上,条形折叠的过渡动画
// 参数1:过渡动作持续的时间
// 参数2:切换的目标场景的对象
// reScene= CCTransitionFadeUp::create(t, s);
// CCDirector::sharedDirector()->replaceScene(s); // CCTransitionFadeDown
// 作用:创建一个从上到下,条形折叠的过渡动画
// 参数1:过渡动作持续的时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionFadeDown::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionTurnOffTiles
// 作用:创建一个随机方格消失的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene= CCTransitionTurnOffTiles::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSplitRows
// 作用:创建一个分行划分切换的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionSplitRows::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSplitCols
// 作用:创建一个分列划分切换的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionSplitCols::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFade
// 作用:创建一个逐渐过渡到目标颜色的切换动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:目标颜色
// reScene= CCTransitionFade::create(t, s, ccc3(255, 0, 0));
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFlipX
// 作用:创建一个x轴反转的切换动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// kOrientationDownOver kOrientationLeftOver kOrientationRightOver kOrientationUpOver
// reScene = CCTransitionFlipX::create(t, s, kOrientationRightOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFlipY
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// reScene = CCTransitionFlipY::create(t, s
// , kOrientationDownOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionFlipAngular
// 作用:创建一个带有反转角切换动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// reScene = CCTransitionFlipAngular::create(t, s, kOrientationLeftOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionZoomFlipX
// 作用:创建一个带有缩放的x轴反转切换的动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// reScene=CCTransitionZoomFlipX::create(t, s, kOrientationLeftOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionZoomFlipY
// 作用:创建一个带有缩放的Y轴反转切换的动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// reScene=CCTransitionZoomFlipY::create(t, s, kOrientationDownOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionZoomFlipAngular
// 作用:创建一个带有缩放 ,反转角切换的动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// 参数3:反转类型的枚举变量 左右上下
// reScene=CCTransitionZoomFlipAngular::create(t, s, kOrientationRightOver);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionShrinkGrow
// 创建一个放缩交替的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionShrinkGrow::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionRotoZoom
// 创建一个旋转放缩交替的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionRotoZoom::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionMoveInL
// 作用:创建一个从左边推入覆盖的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionMoveInL::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionMoveInR
// 作用:创建一个从右边推入覆盖的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionMoveInR::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionMoveInB
// 作用:创建一个从下边推入覆盖的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionMoveInB::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionMoveInT
// 作用:创建一个从上边推入覆盖的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene = CCTransitionMoveInT::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSlideInL
// 作用:创建一个从左侧推入并顶出旧场景的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene =CCTransitionSlideInL::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSlideInR
// 作用:创建一个从右侧推入并顶出旧场景的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene =CCTransitionSlideInR::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSlideInT
// 作用:创建一个从顶部推入并顶出旧场景的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
// reScene =CCTransitionSlideInT::create(t, s);
// CCDirector::sharedDirector()->replaceScene(reScene); // CCTransitionSlideInB
// 作用:创建一个从下部推入并顶出旧场景的过渡动画
// 参数1:过渡动作的持续时间
// 参数2:切换的目标场景的对象
reScene =CCTransitionSlideInB::create(t, s);
CCDirector::sharedDirector()->replaceScene(reScene);
Cocos2d-X研究之3.0 场景切换特效汇总的更多相关文章
- cocos2d-x 3.0 场景切换特效汇总(转)
cocos2d-x 3.0中场景切换特效比较多,而且游戏开发中也经常需要用到这些特效,来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用. 场景切换用到导演类Directory,大多数用的都是替 ...
- cocos2d-x 3.0 场景切换特效汇总
cocos2d-x 3.0中场景切换特效比較多,并且游戏开发中也常常须要用到这些特效.来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用. 场景切换用到导演类Directory,大多数用的都是替 ...
- Cocos2d-x 3.0 场景切换
场景切换要用到导演类Director,一般有两种方式,大多数是用替换场景(replaceScene),也可以用进栈(pushScene)出栈(popScene)的方式进行场景的替换. 场景切换代码: ...
- COCOS2DX场景切换特效
cocos2d-x 3.0中场景切换特效比较多,而且游戏开发中也经常需要用到这些特效,来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用. 百牛信息技术bainiu.ltd整理发布于博客园 场景 ...
- 场景切换特效Transition——Cocos2d-x学习历程(十二)
Transition 场景切换 在游戏中通常会用到一些场景的切换,比如从加载界面切换到欢迎界面.游戏中的所有场景存放在一个栈中,有且只有一个场景可以处于激活状态.直接replaceScene(即不适用 ...
- Learning Cocos2d-x for WP8(6)——场景切换和场景过渡效果
原文:Learning Cocos2d-x for WP8(6)--场景切换和场景过渡效果 C#(wp7)兄弟篇 Learning Cocos2d-x for XNA(6)——场景切换和场景过渡效果 ...
- JavaScript强化教程 -- cocosjs场景切换
场景切换 在main.js,将StartScene作为我们初始化运行的场景,代码如下: cc.LoaderScene.preload(g_resources, function () { cc.dir ...
- Cocos2d-JS切换场景与切换特效
var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { //////////////////////////// ...
- [cocos2d]场景切换以及切换进度显示
本文主要分两个部分叙述,第一是场景切换,第二是场景切换的进度显示. 一.场景切换 参考learn-iphone-and-ipad-cocos2d-game-development 第五章内容 coco ...
随机推荐
- C++函数返回值与引用
对于函数的返回值,看似简单,但并非如此,比如: int func(int a);该函数会返回一个int型,如果进行一个调用int result=func(3);会发生什么情况? 首先,func将返回值 ...
- 洛谷CF895C Square Subsets(线性基)
洛谷传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 题意: 给你n个数,每个数<=70,问有多少个集合,满足集合中所有数相乘是个完全平方数(空集除外) 题解: 完全看不出这玩意儿和线性基有什 ...
- Kibana: Unknown error while connecting to Elasticsearch
如果访问不通,可能是网络代理的问题,注意查看/etc/profile中是否设置了相关的代理. 注意修改代理后,应该执行 . /etc/profile 使配置文件立即生效.
- SpringMvc源码入门
servlet httpServletRequest httpServlet
- LocalBroadcastManager
LocalBroadcastManager mLocalBroadcastManager; BroadcastReceiver mReceiver; //注册通知 mLocalBroadcastMan ...
- Django (八) 中间件&验证码&富文本&缓存
中间件&验证码&富文本&缓存 1. 中间件&AOP 中间件:是一个轻量级的,底层的插件,可以介入Django的请求和响应过程(面向切面编程) 中间件的本质就是一 ...
- Codeforces Round #541 (Div. 2) C.Birthday
链接:https://codeforces.com/contest/1131/problem/C 题意: 求给的n个数,相邻差值最小的排列方式.1-n相邻. 思路: sort后隔一个取一个,取到底后再 ...
- HDU6308(2018多校第一场)
Bryce1010模板 http://acm.hdu.edu.cn/showproblem.php?pid=6308 将时间化简为分钟计算,同时不要用浮点数计算,精度会出现问题: 如果采用精度,最好加 ...
- Excel 通过pl/sql导入到数据库 文本导入器 odbc导入器
Excel 通过pl/sql导入到数据库 第一种方法:文本导入器 1.准备Excel导入数据 jc.xls 2.把 jc.xls 文件 改为 jc.csv文件 3.在数据库里建一张jc表(FLH ...
- Spring的ioc(DI)复习概念和原理简介
IOC的好处 ioc或者说di的概念很显然了,反转控制和依赖注入,那本来直接new就行的东西,为什么要搞这么复杂呢?? 开发维护方便,高层设计不用依赖底层的,不然底层一个类改下构造器,高层就全要改,因 ...
我要投稿