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 ...
随机推荐
- mysql系列三、mysql开启缓存、设置缓存大小、缓存过期机制
一.开启缓存 mysql 开启查询缓存可以有两种方法来开启一种是使用set命令来进行开启,另一种是直接修改my.ini文件来直接设置都是非常的简单的哦. 开启缓存,设置缓存大小,具体实施如下: 1.修 ...
- C++:vector中的v.at(0)和v[0]的区别
设v是一个vector的对象, 如果v是非空的,则v.at(0)和v[0]是没有区别的,都是取数组中第一个值: 如果v是空的,则v.at(0)会抛出异常(exception std::out_of_r ...
- spring mvc context-param init-param 区别
init-param:mvc 配置文件context-param spring配置文件
- imp高版本的dmp文件报错问题
imp高版本的dmp文件报错问题 导出方:oracle 11R2 www.2cto.com 导入方:oracle 10R2 通过imp导入时提示如下: 解决方法: 通过编 ...
- 面向对象特征:封装、多态 以及 @propetry装饰器
(继承补充)组合 obj=fun()#对象 obj.attr=foo()#对象的属性等于另一个对象 什么是组合: A类的对象具备某一个属性,该属性的值是B类的对象 基于这种方式就把A类与B ...
- 虚拟机Ubuntu 18.04安装RabbitMQ 3.7.9
Windows 10家庭中文版,VirtualBox,Ubuntu 18.04,Rabbitmq 3.7.9,Erlang/OTP 20 [erts-9.2], 在虚拟机上装好了Ubuntu,写了一个 ...
- Golang依赖管理工具:glide从入门到精通使用
这是一个创建于 2017-07-22 05:33:09 的文章,其中的信息可能已经有所发展或是发生改变. 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰 ...
- AdvStringGrid 标题头 加粗的问题
当AdvStringGrid1.RowCount = 1的时候,会是下面这样: 当AdvStringGrid1.RowCount = 2 时 才是正确的:
- gcd,lcm
定理:gcd(a,b)*lcm(a,b)=a*b; 更相损减术:gcd(a,b)=gcd(b,a-b)=gcd(a,a-b) 欧几里得算法:gcd(a,b)=gcd(b,a mod b) 复杂度O(l ...
- python+selenium六:等待相关
显式等待(sleep): 固定的等待(死等),不管页面有没有加载完,都等设置的时间过了再做下一步操作 隐式等待 全局生效,只写一次即可(仅当前页面),缺点:如果页面一直转圈,如:js出错将等待到所设置 ...