Cocos2d-x的设计允许我们在游戏的任何部分自由地使用OpenGL,这为我们带来了无与伦比的灵活性,但同时也必须注意,滥用OpenGL会使得代码变得混乱而难以维护,因此除非迫不得已,不应首先考虑OpenGL。
引擎封装了一个特殊的动作类CCActionGrid3D,可以模拟一些简单的3D特效,在一些情况下可以代替OpenGL。恰好引擎利用CCActionGrid3D提供了一个类似于我们实现的水纹效果的波浪效果动作,下面我们就利用Cocos2d-x自带的动作来实现水纹效果。
这个特效动作类的使用非常简单,先看如何用其代替我们之前实现的效果。在开始场景的初始化中加入下面的两行代码:
CCGrid3DAction *grid = CCWaves3D::create(50, 40, ccg(10, 10), 10);
this->runAction(grid);
就可以看到波浪效果动画了。