特效类即是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的效果变得更逼真,更接近现实世界。

最新文章

  1. Nginx配置Https
  2. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类
  3. VS2010 密钥问题
  4. Winform应用程序实现通用遮罩层
  5. Linux内核之数据双链表
  6. Winform在一个窗体获取其他窗体的值
  7. python实现发送邮件功能
  8. 初学Pexpect
  9. IOS 网络判断
  10. [译]URL和URI的区别
  11. POJ 1742 hdu 2844 Coins
  12. OS和android游戏纹理优化和内存优化(cocos2d-x)
  13. 如何判断微信内置浏览器(通过User Agent实现)
  14. java面向对象编程(七)--四大特征之多态
  15. Educational Codeforces Round 43 (Rated for Div. 2)
  16. MPI之聚合通信-Scatter,Gather,Allgather
  17. Unity --- MeshRenderer之网格合并
  18. ios9 之后使用CFNumberGetValue出错
  19. 多线程下载文件,ftp文件服务器
  20. 2016.5.19——vector型的输入输出

热门文章

  1. KMP(http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2772)
  2. The Air Jordan 11 Gym Red will be available December 9
  3. JS参差不齐的数组
  4. cocos代码研究(2)Layer学习笔记
  5. chkconfig添加进入服务后,出现的现象
  6. http-equiv="Refresh" 实现定时刷新页面
  7. mysql回滚日志
  8. POST—GET—两种提交方式的区别
  9. cf428c 模拟题
  10. python 简单的爬虫