Cocos2DX之CCParallaxNode
如果我们的游戏中有地图的移动,就无法避免滚动视差。也就是说离实现越远的地方移动速度越慢,这样才可以形成景深不一样的视觉效果。
如果使用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相关推荐
- 【cocos2d-x】游戏构成要素③----游戏关卡的实现
到目前为止,我们讨论了多个场景和多个层的应用.现在我们来讨论关卡. 大家应该对关卡的概念都很熟悉,所以我不在这里做解释了.设计关卡的难点是决定用什么样的方式来设计基于关卡的游戏. 在Cocos2d-x ...
- Cocos2d-x学习之 整体框架描述
1.Cocos2d-x 整体描述 和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成: 导演(CCDiretor): 在cocos2d-x引擎中,CCDirecto ...
- cocos2d-x学习笔记(持续更新)
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件 目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...
- 转载了别人的cocos2d-x的学习笔记
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:ParticleDesigner软件目前只支持MAC平台导出plist文件 地图设计工具:Tiles目前有两 ...
- COcos2d-X 中文API
本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另 ...
- 可耻的转载了别人的cocos2d-x的学习笔记
原文:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计 ...
- cocos2d-x高级学习
弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl ...
- cocos2dx学习笔记
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件 目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...
- cocos2d-x 3.10 PageView BUG
cocos2d-x 3.10 PageView 拖动滚动到下一个单元,没事件,3.11有修复. 转载于:https://www.cnblogs.com/qianwang/p/6106324.html
最新文章
- 空行替换_Word怎么批量删除空行和空格?有技巧很简单!
- C#——《C#语言程序设计》实验报告——面向对象程序设计——字符串加密
- 【C语言】时间操作,把1970年开始秒数计算的时间,转换为字符串格式输出
- 工作245:vue的注意规范之v-if 与 v-for 一起使用
- 页面url带参数_微信小程序云开发教程微信小程序的JS高级页面间数据传递
- java 计算随机数_JAVA获取随机数
- 十分漂亮的视频源码解析
- 【演讲实录】RWP团队谈SQL优化
- 【英语学习】【WOTD】prodigous 释义/词源/示例
- 30个Python极简代码
- mysql mgr写入_社区投稿 | MySQL MGR一致性读写特性解读
- 服务器搭建网站完整教程(宝塔面板+wordpress) 快速搭建网站 一键部署
- [WM]怎么让应用程序更省电
- python+selenium+tkinter打造网易云音乐下载器
- SpringMVC工作原理(含案例图解)
- 光大祖业 奉子成婚——SAS与SATA-Ⅱ专题
- 对学习数据结构的建议
- 2020手机音频解码芯片_2020杰理音频芯片全解析,14款音频产品代表作拆解汇总...
- 程序员群嘲红芯浏览器:注释过度很业余,创新混淆视听
- win10:如何通过注册表删除右键菜单
热门文章
- [kpw] Kindle Paperwhite被强制升级到5.6.5后,USBNetwork无法使用
- 2020-12-03 Matlab --CUDNN_STATUS_EXECUTION_FAILED
- Centos 7下安装pip(简略版)
- 算法:c语言实现(第5部分)图算法 源代码,(赠品)算法:C语言实现(第5部分):图算法(英文影印版·第3版)...
- 服务器显示被登录成功,登录云服务器成功的显示是什么
- 开发测试技巧|辅助开发调试:goolge谷歌浏览器利用F12在控制台输入脚本实现表单自动填充
- 机器人也得不断的练习才学的会 得让机器「理解」对象的特殊之处
- 线程间通信方式Linux,线程间的通信、同步方式与进程间通信方式
- 《基于区块链的新型身份验证系统》毕业设计开题报告
- 2021年全球滤水器收入大约1531.1百万美元,预计2028年达到2248.9百万美元,2022至2028期间,年复合增长率CAGR为6.1%