Cocos2dx 3D自轴旋转

2015年01月20日 10:18 0 点赞 0 评论 更新于 2025-11-21 14:52

在Cocos2dx中,我们可以实现多种3D特效,以下是对各种特效的详细介绍及代码示例。

1. 3D特效代码示例及参数说明

3D晃动特效

// 创建一个3D晃动的特效
CCActionInterval* shaky3D = CCShaky3D::create(5, CCSize(10, 10), 15, false);
sp->runAction(shaky3D);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格大小
  • 参数3:晃动的范围
  • 参数4:是否有z轴晃动

3D瓷砖晃动特效

// 创建一个3D瓷砖晃动的特效
CCActionInterval* shakyTiles3D = CCShakyTiles3D::create(5, CCSize(10, 10), 5, false);
sp->runAction(shakyTiles3D);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格大小
  • 参数3:晃动的范围
  • 参数4:是否有z轴晃动

波动特效

// 创建一个波动特效
CCActionInterval* waves = CCWaves::create(5, CCSize(10, 10), 10, 20, true, true);
sp->runAction(waves);

参数说明

  • 参数1:特效持续时间
  • 参数2:网格大小
  • 参数3:波动的速率
  • 参数4:振幅
  • 参数5:水平波动
  • 参数6:垂直波动

3D波动特效

// 创建一个3D波动特效
CCActionInterval* waves3D = CCWaves3D::create(5, CCSize(10, 10), 10, 20);
sp->runAction(waves3D);

参数说明

  • 参数1:特效持续时间
  • 参数2:网格大小
  • 参数3:波动的速率
  • 参数4:振幅

3D瓷砖波动特效

// 创建一个3D瓷砖波动特效
CCActionInterval* wavesTiles3D = CCWavesTiles3D::create(5, CCSize(10, 10), 10, 20);
sp->runAction(wavesTiles3D);

参数说明

  • 参数1:特效持续时间
  • 参数2:网格大小
  • 参数3:波动的速率
  • 参数4:振幅

X轴3D反转特效

// 创建x轴3D反转特效
CCActionInterval* filpX = CCFlipX3D::create(5);
sp->runAction(filpX);

参数说明

  • 参数:特效持续的时间

Y轴3D反转特效

// 创建Y轴3D反转特效
CCActionInterval* filpY = CCFlipY3D::create(5);
sp->runAction(filpY);

凸透镜特效

// 创建凸镜特效
CCActionInterval* lens = CCLens3D::create(2, CCSize(10, 10),CCPointMake(240, 160), 240);
sp->runAction(lens);

参数说明

  • 参数1:网格持续时间
  • 参数2:网格大小
  • 参数3:凸镜中心点
  • 参数4:凸镜半径

水波纹特效

// 创建水波特效
CCActionInterval* ripple = CCRipple3D::create(5, CCSize(10, 10), CCPointMake(240, 160), 240, 4, 160);
sp->runAction(ripple);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格大小
  • 参数3:起始位置
  • 参数4:半径
  • 参数5:速率
  • 参数6:振幅

液体特效

// 创建液体特效
CCActionInterval* liquid = CCLiquid::create(5, CCSize(10, 10), 4, 20);
sp->runAction(liquid);

参数说明

  • 参数1:特效持续时间
  • 参数2:网格大小
  • 参数3:速率
  • 参数4:振幅

扭曲旋转特效

// 创建扭曲旋转特效
CCActionInterval* twirl = CCTwirl::create(50, CCSize(10, 10), CCPointMake(240, 160), 2, 2.5);
sp->runAction(twirl);

参数说明

  • 参数1:特效持续时间
  • 参数2:网格大小
  • 参数3:扭曲旋转中心点
  • 参数4:扭曲旋转的次数
  • 参数5:振幅

破碎的3D瓷砖特效

// 创建破碎的3D瓷砖特效
CCActionInterval* shatteredTiles = CCShatteredTiles3D::create(15, CCSize(10, 10), 50, true);
sp->runAction(shatteredTiles);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格大小
  • 参数3:范围
  • 参数4:是否开启z轴

瓷砖洗牌特效

// 创建瓷砖的洗牌特效
CCActionInterval* shuffle = CCShuffleTiles::create(5, CCSize(50, 50), 50);
sp->runAction(shuffle);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格大小
  • 参数3:随机数

部落格效果(从左下角到右上角)

// 创建部落格效果 , 从左下角到右上角
CCActionInterval* fadeOutTRTiles = CCFadeOutTRTiles::create(5, CCSize(50, 50));
sp->runAction(fadeOutTRTiles);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

部落格效果(从右上角到左下角)

// 创建部落格效果 , 从右上角到左下角
CCActionInterval* fadeOutBLTiles  = CCFadeOutBLTiles::create(5, CCSize(50, 50));
sp->runAction(fadeOutBLTiles);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

折叠效果(从下到上)

// 创建折叠效果 从下到上
CCActionInterval* fadeOutUpTiles = CCFadeOutUpTiles::create(5, CCSize(10, 10));
sp->runAction(fadeOutUpTiles);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

折叠效果(从上到下)

// 创建折叠效果 从上到下
CCActionInterval* fadeOutDownTiles = CCFadeOutDownTiles::create(4, CCSize(20, 50));
sp->runAction(fadeOutDownTiles);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

方块消失特效

// 创建方块消失特效
CCActionInterval* turnOffFiels = CCTurnOffTiles::create(4, CCSize(50, 50));
sp->runAction(turnOffFiels);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

跳动的方块特效

// 创建跳动的方格特效
CCActionInterval* jumpTiles = CCJumpTiles3D::create(5, CCSize(20, 20), 5, 20);
sp->runAction(jumpTiles);

参数说明

  • 参数1:特效持续的时间
  • 参数2:网格的大小
  • 参数3:跳动的次数

分多行消失特效

// 创建分多列消失特效
CCActionInterval* splitCols = CCSplitCols::create(5, 50);
sp->runAction(splitCols);

参数说明

  • 参数1:列数
  • 参数2:特效持续的时间

分多列消失特效

// 创建分多行消失特效
CCActionInterval* splitRows = CCSplitRows::create(5, 50);
sp->runAction(splitRows);

参数说明

  • 参数1:行数
  • 参数2:特效持续的时间

3D翻页特效

// 创建3D翻页特效
CCActionInterval* pageTurn3D = CCPageTurn3D::create(4, CCSize(20, 20));
sp->runAction(pageTurn3D);

参数说明

  • 参数1:网格大小
  • 参数2:特效持续的时间

2. 效果组合

2.1 基本动作(InstantAction)

  • 放置Place
  • 隐藏Hide
  • 显示Show
  • 可见切换ToggleVisibility

2.2 延时动作

  • 移动到CCMoveTo
  • 移动CCMoveBy
  • 跳跃到CCJumpTo
  • 跳跃CCJumpBy
  • 贝塞尔CCBezierBy
  • 放大到CCScaleTo :设置放大倍数,是浮点型。
  • 放大CCScaleBy
  • 旋转到CCRotateTo
  • 旋转CCRotateBy
  • 闪烁CCBlink :设定闪烁次数
  • 色调变化到CCTintTo
  • 色调变换CCTintBy
  • 变暗到CCFadeTo
  • 由无变亮CCFadeIn
  • 由亮变无CCFadeOut

2.3 组合动作

  • 序列CCSequence
  • 同步Spawn
  • 重复有限次数Repeat
  • 动作反向Reverse
  • 动画Animation
  • 无限重复RepeatForever

2.4 速度变化

  • EaseIn:由慢至快。
  • EaseOut:由快至慢。
  • EaseInOut:由慢至快再由快至慢。
  • EaseSineIn:由慢至快。
  • EaseSineOut:由快至慢。
  • EaseSineInOut:由慢至快再由快至慢。
  • EaseExponentialIn:由慢至极快。
  • EaseExponentialOut:由极快至慢。
  • EaseExponentialInOut:由慢至极快再由极快至慢。
  • Speed:人工设定速度,还可通过 SetSpeed 不断调整。

2.5 扩展动作

  • 延时动作Delay ,比如在动作序列中增加一个时间间歇。