如果我们的游戏中有地图的移动,就无法避免滚动视差。也就是说离实现越远的地方移动速度越慢,这样才可以形成景深不一样的视觉效果。
         如果使用cocos2d,那我们可以很简单的实现。因为已经存在了这样一个“容器”:CCParallaxNode。对的,它肯定继承于CCNode,加入到CCParallaxNode的元素都会有一个parallaxRatio,用来决定移动的快慢。

1:构造CCParallaxNode:
           和构造CCNode没有什么不同
           CCParallaxNode *parallaxNode = [CCParallaxNode node];

2:向CCParallaxNode添加元素:

CCSprite *background = [CCSprite spriteWithFile:@"background.png"];//最远的背景

CCSprite *map = [CCSprite spriteWithFile:@"map.png"];//中间的地图元素

CCSprite *topImage = [CCSprite spriteWithFile:@"powered.png"];//最前景

// background image is moved at a ratio of 0.4x, 0.5y
          [parallaxNode addChild:background  z:-1 parallaxRatio:ccp(0.4f,0.5f)
                                                              positionOffset:CGPointZero];
            
          // map are moved at a ratio of 2.2x, 1.0y
         [parallaxNode addChild:map z:1 parallaxRatio:ccp(2.2f,1.0f)
                                                                 positionOffset:ccp(0,-200)];
            
          // top image is moved at a ratio of 3.0x, 2.5y
         [parallaxNode addChild:cocosImage z:2 parallaxRatio:ccp(3.0f,2.5f)
                                                           positionOffset:ccp(200,800)];

3:解析:
           parallaxRatio其实就是相对于CCParallaxNode 的移动速度的比例,比如background的parallaxRatio为ccp(0.4,0.5),表示CCParallaxNode的X轴和Y轴分别移动一个点,则background分别移动0.4,0.5个点。这样看起来远背景移动的速度就慢一些了。

4:内部实现:
           CCParallaxNode的内部实现其实也很简单,只需要根据parallaxRatio重新计算每个Child的位置即可。

Cocos2DX之CCParallaxNode相关推荐

  1. 【cocos2d-x】游戏构成要素③----游戏关卡的实现

    到目前为止,我们讨论了多个场景和多个层的应用.现在我们来讨论关卡. 大家应该对关卡的概念都很熟悉,所以我不在这里做解释了.设计关卡的难点是决定用什么样的方式来设计基于关卡的游戏. 在Cocos2d-x ...

  2. Cocos2d-x学习之 整体框架描述

    1.Cocos2d-x 整体描述 和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成: 导演(CCDiretor): 在cocos2d-x引擎中,CCDirecto ...

  3. cocos2d-x学习笔记(持续更新)

    接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件  目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...

  4. 转载了别人的cocos2d-x的学习笔记

    接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:ParticleDesigner软件目前只支持MAC平台导出plist文件 地图设计工具:Tiles目前有两 ...

  5. COcos2d-X 中文API

    本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另 ...

  6. 可耻的转载了别人的cocos2d-x的学习笔记

    原文:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计 ...

  7. cocos2d-x高级学习

    弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib  pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl ...

  8. cocos2dx学习笔记

    接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件  目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...

  9. cocos2d-x 3.10 PageView BUG

    cocos2d-x 3.10 PageView 拖动滚动到下一个单元,没事件,3.11有修复. 转载于:https://www.cnblogs.com/qianwang/p/6106324.html

最新文章

  1. 空行替换_Word怎么批量删除空行和空格?有技巧很简单!
  2. C#——《C#语言程序设计》实验报告——面向对象程序设计——字符串加密
  3. 【C语言】时间操作,把1970年开始秒数计算的时间,转换为字符串格式输出
  4. 工作245:vue的注意规范之v-if 与 v-for 一起使用
  5. 页面url带参数_微信小程序云开发教程微信小程序的JS高级页面间数据传递
  6. java 计算随机数_JAVA获取随机数
  7. 十分漂亮的视频源码解析
  8. 【演讲实录】RWP团队谈SQL优化
  9. 【英语学习】【WOTD】prodigous 释义/词源/示例
  10. 30个Python极简代码
  11. mysql mgr写入_社区投稿 | MySQL MGR一致性读写特性解读
  12. 服务器搭建网站完整教程(宝塔面板+wordpress) 快速搭建网站 一键部署
  13. [WM]怎么让应用程序更省电
  14. python+selenium+tkinter打造网易云音乐下载器
  15. SpringMVC工作原理(含案例图解)
  16. 光大祖业 奉子成婚——SAS与SATA-Ⅱ专题
  17. 对学习数据结构的建议
  18. 2020手机音频解码芯片_2020杰理音频芯片全解析,14款音频产品代表作拆解汇总...
  19. 程序员群嘲红芯浏览器:注释过度很业余,创新混淆视听
  20. win10:如何通过注册表删除右键菜单

热门文章

  1. [kpw] Kindle Paperwhite被强制升级到5.6.5后,USBNetwork无法使用
  2. 2020-12-03 Matlab --CUDNN_STATUS_EXECUTION_FAILED
  3. Centos 7下安装pip(简略版)
  4. 算法:c语言实现(第5部分)图算法 源代码,(赠品)算法:C语言实现(第5部分):图算法(英文影印版·第3版)...
  5. 服务器显示被登录成功,登录云服务器成功的显示是什么
  6. 开发测试技巧|辅助开发调试:goolge谷歌浏览器利用F12在控制台输入脚本实现表单自动填充
  7. 机器人也得不断的练习才学的会 得让机器「理解」对象的特殊之处
  8. 线程间通信方式Linux,线程间的通信、同步方式与进程间通信方式
  9. 《基于区块链的新型身份验证系统》毕业设计开题报告
  10. 2021年全球滤水器收入大约1531.1百万美元,预计2028年达到2248.9百万美元,2022至2028期间,年复合增长率CAGR为6.1%