[泰然翻译] cocos2d programming guide翻译(10)

效果是一些动作,通过修改方格属性来代替不透明、位置、旋转等动作对普通属性的修改。

网格属性像矩阵,由一系列矩形组成的。

这些特别的动作可以用任意的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]];

你可能感兴趣的:([泰然翻译] cocos2d programming guide翻译(10))