在Cocos2dx中同时运行许多效果操作

时间:2013-06-13 03:44:29

标签: cocos2d-iphone cocos2d-x ccaction

我是Cocos2dx的新手,我正在尝试通过使用3:1矩形纹理创建一个行星动画旋转,其中包含3个正方形是球体的两个面(地图)(第三个正方形是克隆第一个)。我通过裁剪纹理创建一个帧数组并将它们添加到CCAnimation。然后我用两个效果测试这个动画,使方框成为一个3D圆圈:CCLens和CCTurnOffTiles(我将来修改它只关闭圆圈外的网格)。

但是有一个问题:两个效果不叠加。如果在CCLens之后添加CCTurnOffTiles,CCLens将无法工作;如果在CCTurnOffTiles之后添加CCLens,CCDirector将在运行时抛出读取违例异常。

有没有可以同时运行多种效果或以其他方式实现行星动画的解决方案?感谢。

2 个答案:

答案 0 :(得分:3)

尝试使用CCSpawn

// Create the effects
CCLens3D * lensEffect; // Your CCLens3D create()
CCTurnOffTiles * turnOff; // Your CCTurnOfftiles create()

// Create a spawn to run them simultaneously
CCSpawn * sphereEffect = CCSpawn::createWithTwoActions( lensEffect, turnOff );

// Run the spawn
myObject -> runAction( sphereEffect );

答案 1 :(得分:1)

CCTurnOffTiles和CCLens3D都继承了CCGridAction。

但是一个取消另一个:CCTurnOffTiles将关闭网格图块,CCLens3d需要这些网格图块。

我建议您绘制所有行星精灵,已经圈出并使用SpriteSheet,然后使用CCAnimation制作动画,而不使用CCTurnOffTiles或CCLens3D。这是最简单的,将消耗更少的CPU。

相关问题