ParallaxNode视差节点实现远景近景的不同层次移动
Cocos2d-x有ParallaxNode视差节点,视察顾名思义,就是造成不同的移动速率的效果。
我想大家都玩过刀塔传奇,他的背景有远景和近景之分,而且你滑动屏幕的时候远景和近景是按照不同的速率移动的;
今天我们就来实现这个效果。
关键词:ScrollView , ParallaxNode
要滑动肯定需要ScrollView了,我们一般都会用cocostudio去构建一个ScrollViewd的组件,在cocostudio里面设置好各种我们需要的属性,导入工程里面就可以直接滑动了;
cocos2d-x 3.2读取cocostudio项目接口发生了不小的变化,cocostudio画了一个scrollView,读入项目;
auto rootNode =cocostudio::timeline::NodeReader::getInstance()->createNode("ScrollViewTest_1/ScrollViewTest_1.ExportJson");
rootNode相当于一个layer,我们需要取到ScrollView来进行控制;
auto child = rootNode->getChildByTag();
auto scroll = static_cast<ScrollView *>(child);
scroll->setParent(nullptr); //
auto visiableSize = Director::getInstance()->getVisibleSize();
scroll->setContentSize(visiableSize); //让ScrollView的可视范围和屏幕大小一样,否则会出现适配问题;
这里需要注意的是,ScrollView的可视区域大小和可滑动区域大小的概念,可视区域相当于一个窗口,ScrollView的可滑动区域要大于可视区域,这样才有滑动的效果;现在我们ScrollView已经准备好了。下面需要创建ParallaxNode:
auto bg1 = Sprite::create("HelloWorld.png");
auto bg2 = Sprite::create("HelloWorld.png");
auto sprite = Sprite::create("CloseNormal.png"); parallax = ParallaxNode::create();
parallax->addChild(bg1, , Vec2(0.5f, ), Vec2(, ));//第二个参数是zorder,第三个参数表示移动速度,第三个参数代表Child的相对位置
parallax->addChild(bg2, , Vec2(0.5f, ), Vec2(bg1->getContentSize().width, ));
parallax->addChild(sprite, , Vec2(1.1, ), Vec2(, ));
//this->addChild(parallax);
scroll->addChild(parallax); //最后要把视差节点放入Scrollview内
ParallaxNode视差节点实现远景近景的不同层次移动的更多相关文章
- [Cocos2D-x For WP8]ParallaxNode视差
视差就是从有一定距离的两个点上观察同一个目标所产生的方向差异.从目标看两个点之间的夹角,叫做这两个点的视差角,两点之间的距离称作基线.只要知道视差角度和基线长度,就可以计算出目标和观测者之间的距离.游 ...
- 深入理解DOM节点关系
× 目录 [1]父级属性 [2]子级属性 [3]同级属性[4]包含方法[5]关系方法 前面的话 DOM可以将任何HTML描绘成一个由多层节点构成的结构.节点分为12种不同类型,每种类型分别表示文档中不 ...
- 深入学习jQuery节点关系
× 目录 [1]后代元素 [2]祖先元素 [3]兄弟元素 前面的话 DOM可以将任何HTML描绘成一个由多层节点构成的结构.节点之间的关系构成了层次,而所有页面标记则表现为一个以特定节点为根节点的树形 ...
- MVC 树节点Table格式授权
这几夜心里颇不平静, 奈何 JS水平有限,前台效果耗时四天,后台传值一天,直至昨夜丑时测试初步完成,其实就是一个给tree来授权,网上开源的插件很多,如treejs.easyui 等等,只是这里授权稍 ...
- 基于Parallax设计HTML视差效果
年关将至,给大家拜年. 最近时间充裕了一点,给大家介绍一个比较有意思的控件:Parallax.它可以用来实现鼠标移动时,页面上的元素也做偏移的视差效果.在一些有表现层次,布局空旷的页面上,用来做Hea ...
- python、java实现二叉树,细说二叉树添加节点、深度优先(先序、中序、后续)遍历 、广度优先 遍历算法
数据结构可以说是编程的内功心法,掌握好数据结构真的非常重要.目前基本上流行的数据结构都是c和c++版本的,我最近在学习python,尝试着用python实现了二叉树的基本操作.写下一篇博文,总结一下, ...
- jacascript DOM节点——节点关系与操作
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 节点关系 DOM可以将任何HTML描绘成一个由多层节点构成的结构.每个节点都拥有各自的特点.数据和方法,也 ...
- MVC 纯Table实现树节点效果+授权
这几夜心里颇不平静, 奈何 JS水平有限,前台效果耗时四天,后台传值一天,直至昨夜丑时测试初步完成,其实就是一个给tree来授权,网上开源的插件很多,如treeview.treejs.easyui 等 ...
- JavaScript的DOM_获取和操作层次节点
一.层次节点的概述 节点的层次结构可以划分为:父节点与子节点.兄弟节点这两种.当我们获取其中一个元素节点的时候,就可以使用层次节点属性来获取它相关层次的节点. 二.childNodes 属性 chil ...
随机推荐
- springboot系列十二、springboot集成RestTemplate及常见用法
一.背景介绍 在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Apache的Http Client.N ...
- linux下混杂模式
混杂模式介绍: 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃:简单的讲,混杂模式就是指网卡能接受所有通过它的 ...
- 现代C++之理解auto类型推断
理解auto类型推断 上一篇帖子中讲述了模板类型推断,我们知道auto的实现原理是基于模板类型推断的,回顾一下模板类型推断: template <typename T> void f(Pa ...
- 创建物理卷报错Can't open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录
yum服务器lvm扩容,data目录是yum存放rpm包的目录,只有20G,需要添加磁盘扩容到80G # df -lh Filesystem Size Used Av ...
- Android用户界面开发:TabHost
TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout.TabWidget就是每个tab的标签,FrameLayout则是tab内容.TabHost的二种实现方式:第 ...
- 同时装了Python3和Python2,怎么用pip
作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 错误/异常:java.io.FileNotFoundException: .\src\db.properties (系统找不到指定的路径。);的解决方法
1.异常视图 2.解决方法 与之相关的部分代码: static{ try { //读取db.properties Properties props = new Properties(); FileIn ...
- python 全栈开发,Day54(node.js初识)
一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...
- 判断上学和放假的demo
var today = new Date(); var xq = today.getDay(); var Now = today.getHours(); if (xq >= 1 &&am ...
- 东师理想云平台异步任务处理系统V2.0重构思路
现存问题分析: 1.功能太多,而且杂糅到一个程序中,架构不清晰,出问题不好调试.2.系统重启后,不登录到桌面,程序不运行,用户体验差.经常的下载403等错误3.处理程序卡死,处理速度慢等问题,不支持多 ...