效果是一些动作,通过修改方格属性来代替不透明、位置、旋转等动作对普通属性的修改。
网格属性像矩阵,由一系列矩形组成的。
这些特别的动作可以用任意的CCNode(CCLayer,CCScene,CCSprit等)来修改方格,你可以移动方格到至高点。
有2种方格:平铺的方格和非平铺的方格。两者之间的区别是非平铺的方格顶点之间是相离的,而平铺的方格顶点之间复合在一起
所有方格有2要素行和列,但是每一个方格则是x、y、z,所以你可以创建二维的和三维的方格。
(16,12)大小的方格运行速度很快但是在设备上看起来不是很好。(32,24)大哥的方格看起来很好看,但是在第一代iphone上运行很慢。
他们是怎么工作的
每个屏幕框架都得与文理相关,文理通过坐标数组来进行转换并且这些数组也可以转换成方格,最后坐标数组显示在屏幕上。
获得更多的信息:
平铺的方格:
CCTiledGrid3D
CCTiledGrid3DAction
非平铺的方格:
CCGrid3D
CCGrid3DAction
举例来说,如果你有一个层或者场景变成如下的图片
我们可以通过CCRipple3D来转换成这样的图片。像这些有线的图片,使用的是32*24的大小的非平铺方格(所有的小方格都是组合在一起的)。
或者我们通过CCFadeOutTRTiles来转换它,像下面这些16*24的大小的平铺方格(所有的方格都是分开的)
3D动作
3D动作是以3D最为后缀名的,通过引入z坐标来实现三维。
如果你将要使用3D动作,你也许用使用深层缓冲,你可以用一种简单的方式来调用:
// IMPORTANT: Call this function at the very beginning, before running your 1st scene
// Create a depth buffer of 24 bits
// These means that openGL z-order will be taken into account
[[CCDirector sharedDirector] setDepthBufferFormat:kDepthBuffer16];
下面的一些情况,你也许需要用RGBBA8888像素输出。你可以用下面的方法来转换。
// IMPORTANT: Call this function at the very beginning, before running your 1st scene
// Use this pixel format to have transparent buffers
[[CCDirector sharedDirector] setPixelFormat:kPixelFormatRGBA8888];
方法索引:
CCGrid3DAction:
CCFlipX3D
CCFlipY3D
CCLens3D
CCLiquid
CCRipple3D
CCShaky3D
CCTwirl
CCWaves
CCWaves3D
CCTiled3DAction:
CCFadeOutBLTiles
CCFadeOutTRTiles
CCFadeOutUpTiles
CCFadeOutDownTiles
CCJumpTiles3D
CCShakyTiles3D
CCShatteredTiles3D
CCShuffleTiles
CCSplitCols
CCSplitRows
CCTurnOffTiles
CCWavesTiles3D
示例代码:
// execute a Waves action on sprite 1id waves = [CCWaves actionWithWaves:5 amplitude:20 horizontal:YES vertical:NO grid:ccg(15,10) duration:5];[sprite1 runAction: [CCRepeatForever actionWithAction: waves]];
// and execute a Shaky3D action on sprite 2
id shaky = [CCShaky3D actionWithRange:4 shakeZ:NO grid:ccg(15,10) duration:5];
[sprite2 runAction: [CCRepeatForever actionWithAction: shaky]];