1

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

但是有一个问题:两个效果不能叠加。如果在 CCLens 之后添加 CCTurnOffTiles,CCLens 将不起作用;如果在 CCTurnOffTiles 之后添加 CCLens,CCDirector 将在运行时抛出读取冲突异常。

是否有任何解决方案可以同时运行多个效果或以其他方式实现行星动画?谢谢。

4

2 回答 2

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 );
于 2013-06-13T04:57:22.800 回答
1

CCTurnOffTiles 和 CCLens3D 都继承了 CCGridAction。

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

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

于 2013-06-13T20:43:42.710 回答