上下滑入场景切换效果的全屏实现与问题

bbframework
author: Lan
DATE: 06/15
更多内容

使用 slideInB/slideInT 进行场景切换,全屏升级时改为:SLIDEINB_EX/SLIDEINT_EX
例:
game:enterScene("xxx",{},"slideInB",1.5)
↓↓↓
game:enterScene("xxx",{},"SLIDEINB_EX",1.5)

注:修改之后要在真机上才能看到效果,模拟器无法进行场景切换,为了调试方便可以在game_init定义一个全局变量如 _DEBUG (需避免与框架的变量冲突), 每次模拟器进行调试的时候修改这个值就行了:

if _DEBUG then
    game:enterScene("xxx",{},"slideInB",1.5)
else
    game:enterScene("xxx",{},"SLIDEINB_EX",1.5)
end

  • 改成全屏之后可能出现一个问题,部分超出上下边缘的精灵,在切换过程中可以看到超出部分会覆盖到下一个场景,当切换完成上一个场景释放后才消失。解决这个问题有3个方法(仅供参考):
    1、美术改图
    2、用精灵的setTextureRect方法设置显示区域,让超出屏幕部分不显示
    3、创建一个 CCClippingNode再把精灵添加到上面

这里建议使用第3个方法,因为第一个方法太low 而且耗时长, 使用 setTextureRect 太麻烦,rect 原点是精灵左上角, 所以要计算精灵需要显示的高度,而且设置后需要重新计算精灵的位置。所以最简单粗暴的方法可以直接创建一个屏幕大小的CCClippingNode, 把会超出屏幕的精灵添加到 CCClippingNode 中再添加到层中。

你可能感兴趣的:(上下滑入场景切换效果的全屏实现与问题)