最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
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,比如在动作序列中增加一个时间间歇。