cocos2d-x 효과(EFFECTS)

Effect는 cocos2d-x 에서 제공하는 action의 특수한 종류로서 일반적인 Node의 속성(opacity, position, rotation, scale)을 직접 이용하는 것이 아니다. 


여기서 설명하는 효과는 grid를 이용하는 효과다. 


사실 효과 자체는 그렇게 인상적이지는 않다고 생각한다. 


grid는 격자로서 일종의 matrix(행렬)이다.


격자(grid)의 행과 열은 라인으로 이루어져 있고 각각의 line(선)이 교차하는 지점은 vertex가 된다. 


cocos2d-x에는 두 가지 종류의 grid가 있다. vertex를 로 구성된 grid(non-tiled grid)(왼쪽), 타일로 구성된 tiled grid(오른쪽) 이다.


위 장면은 non-tiled grid를 사용한 Effect다.

아래의 장면은 tiled grid다.


차이점은 명확하다. 전체에 효과를 주느냐, 아니면 타일 하나하나에 효과를 주느냐.

공통점은 두 가지 모두 grid가 필요하다.


효과를 사용하는 방법은 다음과 같다.


grid가 생성되어야만 이 효과를 쓸 수 있으므로 grid를 장면 노드 또는 사용이 필요한 노드에 생성한다.(addChild)

효과 액션을 사용할 Sprite(node)들을 grid에 addChild 한다.

grid에 액션을 준다.( grid에 액션을 주면 grid에 포함된 모든 Node는 효과를 받는다.)


이 효과는 Action의 일종이지만 grid에 사용해야만 하는 Action이므로 나는(grid Action)이라고 부르겠다.

다음과 같은 심플 한 코드로 위와 같은 효과를 낼 수 있다.





효과의 종류는 다음과 같다.


Grid3DAction

sharky3D

Waves3D

FlipX3D

FlipY3D

Lens3D

Liquid

Waves

Twirl

Ripple3D


tiledGrid3DAction

ShakyTiles3D

ShatteredTiles3D

Shuffle Tiles

FadeOutTRTiles

FadeOutBLTiles

FadeOutUpTiles

FadeOutDownTiles

TurnOffTiles

WavesTiles3D

JumpTiles3D

SplitRows

SplitCols

Tags
이 댓글을 비밀 댓글로