微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocos2d-x初探学习笔记6--场景间切换效果

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

Cocos2d-x提供了很多场景间切换的效果,可以方便大家使用(很多是在Kjava时代都需要程序员自己来实现的效果)。

1.使用方法

正常的无过渡场景的如果尚未建立场景(即游戏中的第一个场景),就是用pDirector->runWithScene(pScene);即可以使用相应场景,如果是替换场景,则使用CCDirector::sharedDirector()->replaceScene(this);替换相应的场景即可,而如果要使用场景间的切换效果来切换场景,则需要使用相应的切换方法即transitionWithDuration(当然不同效果的使用方法略有不同)生成相应场景,然后再通过CCDirector::sharedDirector()->replaceScene(this)来启动场景,也就是说这个给这个场景加了一个外包装,然后再启动,那么,这个场景就不是直接显示了,而是在场景的效果使用完了以后进入场景,起到过渡的效果

一般此函数有两个参数,第一个是特效的切换时间,直接生成一个CCTime即可,例子中设定的时间是1.2s,对于很多场景的显示都很舒服,第二个是要进入的场景,有的会有第三个参数,会在下面介绍

2.test中的效果总结

CCTransitionJumpZoom::transitionWithDuration(t,s);//跳跃式,本场景先会缩小,然后跳跃进来

CCTransitionFade::transitionWithDuration(t,s);//淡出淡入,原场景淡出,新场景淡入

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,s,ccwHITE);//如果上一个函数,带3个参数,则第三个参数就是淡出淡入的颜色

CCTransitionFlipX::transitionWithDuration(t,kOrientationLeftOver);//x轴左翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationRightOver);//x轴右翻

CCTransitionFlipY::transitionWithDuration(t,kOrientationUpOver);//y轴上翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationDownOver);//y轴下翻

CCTransitionFlipAngular::transitionWithDuration(t,kOrientationLeftOver);//有角度转的左翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationRightOver);//有角度转的右翻

CCTransitionZoomFlipX::transitionWithDuration(t,kOrientationLeftOver);//带缩放效果x轴左翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationRightOver);//带缩放效果x轴右翻

CCTransitionZoomFlipY::transitionWithDuration(t,kOrientationUpOver);//带缩放效果y轴上翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationDownOver);//带缩放效果y轴下翻

CCTransitionZoomFlipAngular::transitionWithDuration(t,kOrientationLeftOver);//带缩放效果/有角度转的左翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,kOrientationRightOver);//带缩放效果有角度转的右翻

CCTransitionShrinkGrow::transitionWithDuration(t,s);//交错换

CCTransitionRotoZoom::transitionWithDuration(t,s);//转角换

CCTransitionMoveInL::transitionWithDuration(t,s);//新场景从左移入覆盖

CCTransitionMoveInR::transitionWithDuration(t,s);//新场景从右移入覆盖

CCTransitionMoveInT::transitionWithDuration(t,s);//新场景从上移入覆盖

CCTransitionMoveInB::transitionWithDuration(t,s);//新场景从下移入覆盖

CCTransitionSlideInL::transitionWithDuration(t,s);//场景从左移入推出原场景

CCTransitionSlideInR::transitionWithDuration(t,s);//场景从右移入推出原场景

CCTransitionSlideInT::transitionWithDuration(t,s);//场景从上移入推出原场景

CCTransitionSlideInB::transitionWithDuration(t,s);//场景从下移入推出原场景

以下三个需要检测opengl版本是否支持CCConfiguration::sharedConfiguration()->getGlesversion()<=GLES_VER_1_0如果为真则为不支持

CCTransitionCrossFade::transitionWithDuration(t,s);//淡出淡入交叉,同时进行

CCTransitionRadialccw::transitionWithDuration(t,s);//时针切入

CCTransitionRadialCW::transitionWithDuration(t,s);//时针切入

以下两个需要先设置摄像机,使用CCDirector::sharedDirector()->setDepthTest(true);

CCTransitionPageTurn::transitionWithDuration(t,false);//翻页,前翻

ottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(85,true);//翻页,后翻

CCTransitionFadeTR::transitionWithDuration(t,s);//向右上波浪

CCTransitionFadeBL::transitionWithDuration(t,s);//向左下波浪

CCTransitionFadeUp::transitionWithDuration(t,s);//向上百叶窗

CCTransitionFadeDown::transitionWithDuration(t,s);//向下百叶窗

CCTransitionTurnOffTiles::transitionWithDuration(t,s);//随机小方块

CCTransitionSplitRows::transitionWithDuration(t,s);//按行切

CCTransitionSplitCols::transitionWithDuration(t,s);//按列切

刚开始研究此引擎,如有错误之处,希望大家多多指正

下一篇写一下test类里面的其他场景

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐