原文地址 http://blog.csdn.net/jhonlight/article/details/38408351
今天一个群友问我:
我Scene里放置一个Layer,Layer盛放一张图片,即背景图片,我想更换这张图片,而且要求带有系统提供的切换Scene 淡入淡出的效果,于是我用Director类的切换用系统提供的切换动画包装的scene,但是效果是整个scene都被切换了,而我想要的是只有背景变化,其余的不变。
大家都知道,这样做当然不可以,Director(导演)的切换会把制定的scene切换掉,随即而来的scene的会取代之前的scene容器,那面对这个需求,我们该怎么办呢?这时候我想到了网格效果,既然你想要淡入淡出的效果,网格效果中正好也有啊。于是他按照我说的去做了,后来发现网格效果种只有淡出FadeOutBLTiles,这可怎么办?可别忘了cocos2dx 有这样一个动作,reverse();即反转,淡出反转之后,我们可不可理解为淡出呢?是吧 没错,基本符合需求。
以上只是一个小插曲,下面通过一个小小的例子,来简要说明网格特效的使用。
首先来一段官网的介绍吧。
网格动作类似于特效,可以实现翻转、抖动、震荡、水波纹等效果。Cocos2D-x中,网格类的基类CCGridBase有两个子类,即CCGrid3D和CCTiledGrid3D。这两个类的共同点是,网格的每个子块都可以分离出来,CCGridBase的继承关系如下:
CCGrid3D、CCTiledGrid3D-->CCGridBase-->CCObject。
网格没有什么直接应用的场合,只要明白CCGrid3D和CCTiledGrid3D,并且网格动作是基于网格的即可。运行网格动作的节点好像被分成了大小相同的很多矩形,通过这些矩形的动作形成整体动作,这些矩形就好像形成了一个矩阵。16x12的网格将会运行的非常快,但是效果并不是非常好。32x24的网格看起来非常棒,但是在有些时候运行起来不会太快。