Cocos2d-JS提供了很多特效,这些特效事实上属于间隔动作,特效类cc.GridAction类,也称为网格动作,它的类图如下图所示。

网格动作类图

网格动作
cc.GridAction它有两个主要的子类cc.Grid3DAction和cc.TiledGrid3DAction,cc.TiledGrid3DAction系列的子类中会有瓦片效果,如下图所示是Waves3D特效(cc.Grid3DAction子类),如后图所示是WavesTiles3D特效(cc.TiledGrid3DAction子类),比较这两个效果我们会看到瓦片效果的特别之处是界面被分割成多个方格。

Waves3D特效
WavesTiles3D特效

网格动作都是采用3D效果给用户的体验是非常震撼和绚丽,但是也给内存和CPU造成了巨大的压力和负担,如果不启用Open GL的深度缓冲,3D效果就会失真,但是启用的话对于显示性能会造成负面影响。
实例:特效演示
下面我们通过一个实例介绍几个特效的使用,这个实例如下图所示,上图是一个操作菜单场景,选择菜单可以进入到下图动作场景,在下图动作场景中点击Go按钮可以执行我们选择的特性动作,点击Back按钮可以返回到菜单场景。

特效实例

MyActionScene.js中的ctor构造函数代码如下:

[html] view plaincopy
  1. ctor: function (flagTag) {
  2. this._super();
  3. this.flagTag = flagTag;
  4. this.gridNodeTarget = cc.NodeGrid.create();                              ①
  5. this.addChild(this.gridNodeTarget);
  6. cc.log("MyActionLayer init flagTag " + this.flagTag);
  7. var size = cc.director.getWinSize();
  8. var bg = new cc.Sprite(res.Background_png);
  9. bg.x = size.width / 2;
  10. bg.y = size.height / 2;
  11. this.gridNodeTarget.addChild(bg);
  12. var sprite = new cc.Sprite(res.hero_png);
  13. sprite.x = size.width / 2;
  14. sprite.y = size.height / 2;
  15. this.gridNodeTarget.addChild(sprite, 1, SP_TAG);
  16. var backMenuItem = new cc.MenuItemImage(res.Back_up_png, res.Back_down_png,
  17. function () {
  18. cc.director.popScene();
  19. }, this);
  20. backMenuItem.x = 140;
  21. backMenuItem.y = size.height - 65;
  22. var goMenuItem = new cc.MenuItemImage(res.Go_up_png, res.Go_down_png,
  23. this.onMenuCallback, this);
  24. goMenuItem.x = 820;
  25. goMenuItem.y = size.height - 540;
  26. var mn = new cc.Menu(backMenuItem, goMenuItem);
  27. this.gridNodeTarget.addChild(mn, 1);
  28. mn.x = 0;
  29. mn.y = 0;
  30. mn.anchorX = 0.5;
  31. mn.anchorY = 0.5;
  32. return true;
  33. }

上述代码第①行是创建NodeGrid类型成员变量gridNodeTarget,NodeGrid是网格动作管理类。MyActionScene.js中的onMenuCallback函数代码如下:

[html] view plaincopy
  1. onMenuCallback: function (sender) {
  2. cc.log("Tag = " + this.flagTag);
  3. var size = cc.director.getWinSize();
  4. switch (this.flagTag) {
  5. case ActionTypes.kFlipX3D:
  6. this.gridNodeTarget.runAction(cc.flipX3D(3.0));                  ①
  7. break;
  8. case ActionTypes.kPageTurn3D:
  9. this.gridNodeTarget.runAction(cc.pageTurn3D(3.0, cc.size(15, 10)));      ②
  10. break;
  11. case ActionTypes.kLens3D:
  12. this.gridNodeTarget.runAction(cc.lens3D(3.0, cc.size(15, 10),
  13. cc.p(size.width / 2, size.height / 2), 240));       ③
  14. break;
  15. case ActionTypes.kShaky3D:
  16. this.gridNodeTarget.runAction(cc.shaky3D(3.0, cc.size(15, 10), 5, false));   ④
  17. break;
  18. case ActionTypes.kWaves3D:
  19. this.gridNodeTarget.runAction(cc.waves3D(3.0, cc.size(15, 10), 5, 40));  ⑤
  20. break;
  21. case ActionTypes.kJumpTiles3D:
  22. this.gridNodeTarget.runAction(cc.jumpTiles3D(3.0, cc.size(15, 10), 2, 30));  ⑥
  23. break;
  24. case ActionTypes.kShakyTiles3D:
  25. this.gridNodeTarget.runAction(cc.shakyTiles3D(3.0, cc.size(16, 12), 5, false));⑦
  26. break;
  27. case ActionTypes.kWavesTiles3D:
  28. this.gridNodeTarget.runAction(cc.wavesTiles3D(3.0, cc.size(15, 10), 4, 120));    ⑧
  29. break;
  30. }
  31. }

上述代码onMenuCallback函数中是运行特效动作,第①行是使用FlipX3D实现X轴3D翻转特效,cc.flipX3D函数的参数是持续时间。
第②行是使用PageTurn3D实现翻页特效特效,cc.pageTurn3D函数的第一个参数是持续时间,第二个参数是网格的大小。
第③行是使用Lens3D实现凸透镜特效,cc.lens3D函数第一个参数是持续时间,第二个参数是网格大小,第三个参数网透镜中心点,第四个参数是透镜半径。
第④行是使用Shaky3D实现晃动特效,cc.shaky3D函数第一个参数是持续时间,第二个参数是网格的大小,第三个参数晃动的范围,第四个参数是否伴有Z轴晃动。
第⑤行是使用Waves3D实现3D波动特效,cc.waves3D函数第一个参数是持续时间,第二个参数是网格的大小,第三个参数波动次数,第四个参数是振幅。
第⑥行是使用JumpTiles3D实现晃动特效,3D瓦片跳动特效,cc.jumpTiles3D函数第一个参数是持续时间,第二个参数是网格的大小,第三个参数跳动次数,第四个参数是跳动幅度。
第⑦行是使用ShakyTiles3D实现3D瓦片晃动特效,cc.shakyTiles3D函数第一个参数是持续时间,第二个参数是网格的大小,第三个参数晃动的范围,第四个参数是否伴有Z轴晃动。

第⑧行是使用WavesTiles3D实现3D瓦片波动特效,cc.wavesTiles3D函数第一个参数是持续时间,第二个参数是网格的大小,第三个参数动次数,第四个参数是振幅。

更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发》

本书交流讨论网站:http://www.cocoagame.net

欢迎加入Cocos2d-x技术讨论群:257760386

更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

智捷课堂现推出Cocos会员,敬请关注:http://v.51work6.com/courseInfoRedirect.do?action=netDetialInfo&courseId=844465&categoryId=0

《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11659698.html

欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息

转载于:https://www.cnblogs.com/iOS-Blog/p/4375909.html

Cocos2d-JS特效相关推荐

  1. 城市地区级联二级下拉选择菜单js特效

    城市地区级联二级下拉选择菜单js特效:城市级联选择,js地区选择.js特效 <script type="text/javascript">var pc = new Ar ...

  2. html玫瑰花效果代码,html5渲染3D玫瑰花情人节礼物js特效代码

    情人节马上就要到来了,这里给程序员前端设计师们献上一个,html5渲染而成的3D玫瑰花js效果,可以作为虚拟的情人节礼物送给自己的爱人.支持html5的浏览器查看. 查看演示 下载资源: 16 次 下 ...

  3. 图片跟随鼠标移动并放大js特效

    js实现图片放大,并跟随鼠标移动 图片跟随鼠标移动并放大js特效 很多网站有类似于淘宝放大镜的效果,只不过这里说的是 " 不仅能直接放大,而且会跟随鼠标移动 " ! 类似于&quo ...

  4. JS特效代码大全(十一)超炫的js图片展示效果(三)

    在看过上一篇JS特效代码大全(十)超炫的js图片展示效果(二)文章后,相信很多人都想试试把这种效果用到自己的项目中去了.在用的过程当中个性化的需求就来了,比如,想把小图导航放上边去,或者放左边放右边等 ...

  5. 关于JS特效的兼容问题。

    前言: 我们如果想实现一个JS特效(比如有n行记录,每行都有一个checkbox,选择行变颜色,不选中时颜色消失) 最简单的方法不是自己写,而是去网上复制一份下来. 我们往往发现这写JS的函数我们很多 ...

  6. html鼠标平滑滚动效果,JS特效代码 JS动态平滑滚动菜单效果

    JS特效代码 JS动态平滑滚动菜单效果 www.css5.net body {cursor:crosshair; background:#111; margin:0; padding:0; posit ...

  7. 分享75个JS特效倒计时,总有一款适合您

    分享75个JS特效倒计时,总有一款适合您 75个JS特效倒计时下载链接:https://pan.baidu.com/s/1SntVvt85nhN3JgqcsTFY6Q?pwd=q27q  提取码:q2 ...

  8. 鼠标点击页面出现富强自由等文字JS特效

    在其他博客看到一款JS特效,感觉很不错,所有网上收集过来分享给大家. 效果参考本网站,添加点击特效,点击页面会显示:    富强, 民主, 文明, 和谐, 自由, 平等,公正 ,法治, 爱国, 敬业, ...

  9. JS特效模板精彩案例!

             2013年,淘宝装修市场推出了一款新型模板--JS特效模板,何为JS特效模板?JS特效模板比普通模板的优势在哪里?!         JS特效模板,顾名思义,就是利用javascri ...

  10. 淘宝商城首页鼠标经过整个区域图片变暗变亮的JS特效代码

    淘宝商城首页商品分类模块当鼠标经过整个区域图片变暗,唯一鼠标悬停的那个商品图片变亮的JS特效代码! 在线演示:http://mj.588cy.com/jquery/22.html <!DOCTY ...

最新文章

  1. Linux下命令行的彩色终端
  2. Consul集群搭建
  3. Python——高阶函数
  4. 帆软报表插件开发之fine-decision中的EmbedRequestFilterProvider扩展
  5. libuv在cocos2d-x中的使用
  6. 2019/7/25 node.js
  7. cad多个窗口并排显示_高版本CAD如何显示阵列窗口?
  8. 内外网双网卡同时上网
  9. 大数据云计算实习报告
  10. 销售型呼叫中心系统特点
  11. 视音频编解码技术零基础学习方法
  12. ECharts之横向柱状图二
  13. linux12 -MYSQL数据库 --> 19数据库面试必备手册
  14. OpenStack核心组件原理与应用之Keystone
  15. Markdown学习+Typora快捷键
  16. npm,nodejs如何升级
  17. 实景三维可视化管理平台助力提升景区运营管理水平
  18. 第五季“创新之源”大会在中关村软件园成功举办
  19. ie-css3.htc兼容ie8
  20. HTML5动漫网页设计——少女漫画心(HTML+CSS+JavaScript+Bootstrap)

热门文章

  1. 最新NLP Prompt代表工作梳理!ACL 2022 Prompt方向论文解析
  2. 【GNN】R-GCN:GCN 在知识图谱中的应用
  3. 如何优雅地(用TeX)写AI论文
  4. 【前沿】详细讲解Transformer新型神经网络在机器翻译中的应用
  5. 基础 - 常见字符的ASCII码
  6. 深度学习2.0-27.动量与学习率衰减
  7. pyspark对Mysql数据库进行读写
  8. [论文笔记]RoBERTa: A Robustly Optimized BERT Pretraining Approach
  9. 嵌入式系统开发之根文件系统
  10. 5.7 Universal Transformers