Cocos2d-x学习笔记(十二)3D特效
2024-09-18 12:28:47
特效类即是GridAction类,其实就是基于网格的3D动作类。需开启OpenGL的深度缓冲,否则容易3D失真。
下边是一个snippet,创建网格对象,并将其添加到当前layer;同时,将进行3D特效的对象,添加到网格对象上。
gridNodeTarget = NodeGrid::create();
addChild(gridNodeTarget);// add to current layer auto bg = Sprite::create("background.png");
bg->setPosition(Vec2(visibleSize.width/, visibleSize.height /));
gridNodeTarget->addChild(bg); sprite = Sprite::create("hero.png");
sprite->setPosition(Vec2(visibleSize.width / , visibleSize.height / ));
gridNodeTarget->addChild(sprite);
下边是3D特效类的使用,在此不再展示效果。
void MyAction::goMenu(Ref* pSender)
{
Size visibleSize = Director::getInstance()->getVisibleSize();
log("Tag = %i",this->getTag()); switch (this->getTag()) {
case kFlipX3D:
// X轴3D翻转,参数为持续时间
gridNodeTarget->runAction(FlipX3D::create(3.0f));
break;
case kPageTurn3D:
// 翻页特效,第一个参数为持续时间,第二个参数为网格大小
gridNodeTarget->runAction(PageTurn3D::create(3.0f, Size(,)));
break;
case kLens3D:
// 凸透镜特效,第一个参数为持续时间,第二参数为网格大小,第三个参数为透镜中心,第四个参数为透镜半径
gridNodeTarget->runAction(Lens3D::create(3.0f, Size(,),Vec2(visibleSize.width/,visibleSize.height/),));
break;
case kShaky3D:
// 晃动特效,第一个参数为持续参数,的哥参数为网格大小,第三个参数为晃动范围,第四个参数为Z轴晃动
gridNodeTarget->runAction(Shaky3D::create(3.0f, Size(,),,false));
break;
case kWaves3D:
// 3D波动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为波动次数,第四个参数为振幅
gridNodeTarget->runAction(Waves3D::create(3.0f, Size(,),,));
break;
case kJumpTiles3D:
// 3D瓦片跳动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为次数,第四个参数为振幅
gridNodeTarget->runAction(JumpTiles3D::create(3.0f,Size(,),,));
break;
case kShakyTiles3D:
// 3D瓦片晃动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为晃动范围,第四个参数为是否伴有Z轴晃动
gridNodeTarget->runAction(ShakyTiles3D::create(3.0f,Size(,),,false));
break;
case kWavesTiles3D:
// 3D瓦片波动特效,第一个参数为持续时间,第二个参数为网格大小,第三个参数为波动次数,第四个参数为振幅
gridNodeTarget->runAction(WavesTiles3D::create(3.0f,Size(,),,));
break;
}
}
其实,3D效果无非是通过范围控制将2D的效果变得更逼真,更接近现实世界。
最新文章
- Nginx配置Https
- Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类
- VS2010 密钥问题
- Winform应用程序实现通用遮罩层
- Linux内核之数据双链表
- Winform在一个窗体获取其他窗体的值
- python实现发送邮件功能
- 初学Pexpect
- IOS 网络判断
- [译]URL和URI的区别
- POJ 1742 hdu 2844 Coins
- OS和android游戏纹理优化和内存优化(cocos2d-x)
- 如何判断微信内置浏览器(通过User Agent实现)
- java面向对象编程(七)--四大特征之多态
- Educational Codeforces Round 43 (Rated for Div. 2)
- MPI之聚合通信-Scatter,Gather,Allgather
- Unity --- MeshRenderer之网格合并
- ios9 之后使用CFNumberGetValue出错
- 多线程下载文件,ftp文件服务器
- 2016.5.19——vector型的输入输出
热门文章
- KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&;problemid=2772)
- The Air Jordan 11 Gym Red will be available December 9
- JS参差不齐的数组
- cocos代码研究(2)Layer学习笔记
- chkconfig添加进入服务后,出现的现象
- http-equiv=";Refresh"; 实现定时刷新页面
- mysql回滚日志
- POST—GET—两种提交方式的区别
- cf428c 模拟题
- python 简单的爬虫