学习视差节点的心得

之前想要实现关于视差的效果,一直都是想自己写代码,今天偶然看见了关于视差节点的文章,觉得很有用必须学习一下!

首先视差节点的类型名称是ParallaxNode,创建方法很简单:

this->pn = ParallaxNode::create();

创建完成之后,需要往里面添加精灵节点,我再这里创建两个精灵节点

auto background = Sprite::create("HelloWorld.png");
background->setAnchorPoint(Vec2(0, 0));
background->setPosition(Vec2(0, 0));

auto grass = Sprite::create("grass.png");
grass->setAnchorPoint(Vec2(0, 0));
grass->setPosition(0, 0); 

由于需要产生视差效果,所以我们需要把这两个精灵添加到这个ParallaxNode里面:

this->pn->addChild(background, -1, Vec2(1.0f, 1.2f), Vec2::ZERO);
this->pn->addChild(grass, 1, Vec2(2.0f, 2.4f), Vec2::ZERO);

需要说明的是addChild里面的各个参数的作用:

(1)不用说了吧

(2)ZOrder即排列顺序

(3)在XY轴上相对于pn的移动比例

(4)在pn里面的相对位置

而文档里面是这样描述addChild()的:

void addChild (Node *child, int z, const Vec2 &parallaxRatio, const Vec2 &positionOffset) 

添加完成之后,我们需要对pn进行移动,当我们移动pn的时候,内部的两个精灵也会进行移动,但其移动的幅度会根据上述的第三个参数而指定。

我们一般使用update(float delta)来指定移动速度。

当然我们也必须要在onEnter()函数中添加scheduleUpdate()函数来启动schedule。

其中update(float delta)中的内容是:

auto x = this->pn->getPositionX() - 1;
pn->setPositionX(x);
时间: 2024-08-24 10:03:41

学习视差节点的心得的相关文章

第五次作业-系统实现可能需要用到的技术,及学习相关技术的心得

一.系统实现可能需要用到的技术: 我们团队的项目是学生作业管理系统,为了实现这个系统,我们可能需要用到的技术有面向对象编程.UML建模.ASP.NET.C#.SQL server.JQuery 等. (1)面向对象程序设计(Object-Oriented Programming)是一种起源于六十年代,发展已经将近三十年的程序设计思想.对象是对现实世界实体的模拟,由现实实体的过程或信息来定义.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的

cocos2dx[3.4](26)——视差节点ParallaxNode

[唠叨] 当我们移动时,我们会看到离我们越近的物体,会移动的越快,越远的物体,比如远处的山会移动的很慢,而最远处的物体,比如太阳几乎不动,这个现象叫视差. 而在游戏中模仿视差,可以让玩家感觉到游戏中的角色的确是在移动.Cocos提供了 ParallaxNode 视差节点类,可以很容易的建立一个视差层,你可以控制每一层的视差率.位置和层级的高低. [参考] http://www.cocoachina.com/bbs/read.php?tid=213748 (无限视差节点+阴影仿真) http://

学习软件工程课的心得上

一开始看到软件工程的课本的时候,我看了一下,书名为<软件工程--理论.方法与实践>,我本来以为这将会是大三这一学期相对轻松的课程. 没有想到,第一节课,老师的PPT上对软件工程课的吐槽让我惊呆了,我想,到底该怎么办啊?是不是这一学期会被这门课给烦死给累死啊.然后不出所料的,不久之后老师就布置了第一个编程的作业,其实我的编程特别的差劲,但是既然布置了作业,没有办法,只能硬着头皮做下去,其实不得不承认,当时心里其实是有一些怨念的,但是没有别的法子,只能上网搜,然后一点点的看,查,最后终于弄懂了算法

学习软件工程课的心得

一开始看到软件工程的课本的时候,我看了一下,书名为<软件工程--理论.方法与实践>,我本来以为这将会是大三这一学期相对轻松的课程. 没有想到,第一节课,老师的PPT上对软件工程课的吐槽让我惊呆了,我想,到底该怎么办啊?是不是这一学期会被这门课给烦死给累死啊.然后不出所料的,不久之后老师就布置了第一个编程的作业,其实我的编程特别的差劲,但是既然布置了作业,没有办法,只能硬着头皮做下去,其实不得不承认,当时心里其实是有一些怨念的,但是没有别的法子,只能上网搜,然后一点点的看,查,最后终于弄懂了算法

关于64位W7下怎么学习汇编语言的一些心得!

出处:http://tieba.baidu.com/p/2277546332 1.首先下载DOSBOX,它的作用就是让你在64位下使用32.16位的软件.如果不使用DOSBOX就会出现程序不兼容的对话框. 开始安装: 双击打开DOSBox软件,按步骤进行安装,安装目录任选,不过由于C盘是系统盘,所以最好安装在其他盘里:安装成功后打开DOSBox, 我们就可以看到一个非常熟悉的界面了,和电脑里的命令提示符DOS窗口差不多: (注意:由于它的两个窗口是在一起作用的,所以使用的时候不要关掉其中的任一个

Scala学习:第一张基础 - 心得

这是一个神奇的语言. 安装环境就够折腾了,居然还挑eclipse,最新的4.4居然不支持,要用4.3.2 第一张都是些简单的概念介绍,但是通过第一张可以看出scala和其他语言的语法上存在较大的区别(当然根据我的知识范围也就是指的c#,Java) 关键点: 1.Scala中,我们不需要包装类型. 读到这里时,我对性能产生了担心,于是赶快查了下对Scala和Java的性能对比.有个比较好的文章.内容不多,字字珠玑. 不要使用for循环 不要使用scala.collection.mutable 不要

ParallaxNode视差节点实现远景近景的不同层次移动

Cocos2d-x有ParallaxNode视差节点,视察顾名思义,就是造成不同的移动速率的效果. 我想大家都玩过刀塔传奇,他的背景有远景和近景之分,而且你滑动屏幕的时候远景和近景是按照不同的速率移动的: 今天我们就来实现这个效果. 关键词:ScrollView , ParallaxNode 要滑动肯定需要ScrollView了,我们一般都会用cocostudio去构建一个ScrollViewd的组件,在cocostudio里面设置好各种我们需要的属性,导入工程里面就可以直接滑动了: cocos

cocos2d-x 视差节点 ParallaxNode

参考文章http://cn.cocos2d-x.org/tutorial/show?id=1322 ParallaxNode就是视差节点的意思,当我们面对一个背景画面的时候,如果背景在滚动的时候可以使用这个节点,它的功能就是让子节点拥有不同的移动速率,这样,我们就可以让某一些子节点移动的慢一些,而某些子节点移动的快一些.这样营造出的效果就是远处的景物移动的快,而近处的景物移动的快,给人一种更加真实的感觉. 直接上代码怎样使用ParallaxNode 在.h文件定义 ParallaxNode *p

深入学习js节点

深入学习js节点 DOM 模型(model) HTML 文档中的所有节点组成了一个文档树模型, HTML 文档中的每个元素.属性.文本等都代表着树中 的一个节点.这些节点相互联系,相互影响,构成一个 完整的页面,我们称之为模型. HTML 文档中的每个成分都是一个节点. ? 整个文档是一个文档节点 ? 每个 HTML 标签是一个元素节点 ? 包含在 HTML 元素中的文本是文本节点 ? 每一个 HTML 属性是一个属性节点 ? 注释属于注释节点 节点的属性 节点属性能用来干什么? 1.通过节点的