Effects(效果) 是一系列特殊動作。不同於修改透明度、位置、旋轉、縮放等常規屬性,Effects 修改的是一種新屬性 —— Grid(網格)屬性。
Grid 就像一個矩陣,由網格線組成一系列方塊。這些特殊動作能將任何 cocosNode 物件(層、場景、精靈等)轉換為 Grid,進而通過操作頂點實現變形效果。
TiledGrid3D / Grid3D)(16,12) 速度極快但效果一般;(32,24) 效果優但 iPhone 1 代裝置可能不夠流暢使用 3D 動作(名稱以 3D 結尾)需啟用深度緩衝:
// 在執行第一個場景前呼叫
// 建立 24-bit 深度緩衝,OpenGL 會考慮 Z-order
[[Director sharedDirector] setDepthBufferFormat:kDepthBuffer16];
同時建議設定 RGBA8888 像素格式以支援透明效果:
// 在執行第一個場景前呼叫
// 使用此像素格式獲得透明緩衝
[[Director sharedDirector] setPixelFormat:kRGBA8];
// 在 sprite1 上執行 Waves 動作
id waves = [Waves actionWithWaves:5 amplitude:20 horizontal:YES vertical:NO
grid:ccg(15,10) duration:5];
[sprite1 runAction: [RepeatForever actionWithAction:waves]];
// 在 sprite2 上執行 Shaky3D 動作
id shaky = [Shaky3D actionWithRange:4 shakeZ:NO grid:ccg(15,10) duration:5];
[sprite2 runAction: [RepeatForever actionWithAction:shaky]];