现在的位置: 首页 > 综合 > 正文

cocos2d_x+lua【10】 ——场景切换效果的使用

2013年05月17日 ⁄ 综合 ⁄ 共 2436字 ⁄ 字号 评论关闭

oDustGgg个人原创、欢迎转载、转载请注明出处、http://blog.csdn.net/odustggg/article/details/8197289

一、切换效果简介

cocos2d_x提供了大量的场景切换效果、你无需自己再去实现、基本已经能满足日常开发的要求了、
游戏中的第一个场景、使用pDirector:runWithScene(Scene)即可以出现相应场景、
如要切换场景、则使用CCDirector:sharedDirector():replaceScene(Scene)就可替换为新场景、
如要实现不太单调的切换效果则需要实现相应的切换的方法生成相应场景
然后再通过CCDirector:sharedDirector():replaceScene(Scene)来启动场景、场景过渡不会太难看

二、提供效果

--原场景先缩小跳跃出、新场景跳跃进	
CCTransitionJumpZoom:transitionWithDuration(t, s)
--原场景淡出、新场景淡入、第三参数为淡出淡入颜色、省去的时候默认为黑色
CCTransitionFade:transitionWithDuration(t, s, ccWHITE)
--淡出淡入交叉、同时进行
CCTransitionCrossFade: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)
--波浪、百叶窗、随机小方块
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)
--顺时逆时切入
CCTransitionRadialCCW:transitionWithDuration(t,s)
CCTransitionRadialCW:transitionWithDuration(t,s)
--分别是x轴左右翻和y轴上下翻、参数分别是0和1、感觉翻的效果都不太好
--在c++项目中测试没问题、lua中这几个有带翻效果的函数都会出现花屏现象、原因未知
--有知道的同学请留言告知、不甚感激
CCTransitionFlipX:transitionWithDuration(t, s, 0)
CCTransitionFlipY:transitionWithDuration(t, s, 0)
--有角度转的翻
CCTransitionFlipAngular:transitionWithDuration(t, s, 0)
--带缩放效果x轴翻
CCTransitionZoomFlipX:transitionWithDuration(t, s, 0)
--带缩放效果y轴翻
CCTransitionZoomFlipY:transitionWithDuration(t, s, 0)
--带缩放效果/有角度转的翻
CCTransitionZoomFlipAngular:transitionWithDuration(t, s, 0)
--交错换 原场景逐渐变小 新场景逐渐变大
CCTransitionShrinkGrow:transitionWithDuration(t, s);
--转角换  换角度
CCTransitionRotoZoom:transitionWithDuration(t, s);
--前后翻页、个人感觉效果不佳
CCTransitionPageTurn:transitionWithDuration(t, s, false)
CCTransitionPageTurn:transitionWithDuration(t, s, true)

具体效果大家还是看引擎中的tests吧

三、使用方法

runningScene = CCDirector:sharedDirector():getRunningScene() 
local trans = CCTransitionFade:transitionWithDuration(1.5,nextScene)
	if runningScene == nil then 
		CCDirector:sharedDirector():runWithScene( trans )     
		else  
		CCDirector:sharedDirector():replaceScene( trans ) 
	end

抱歉!评论已关闭.