4.3.1 位置变化动作

来源:互联网 发布:矩阵计算法则 编辑:程序博客网 时间:2024/05/17 08:00

4.3.1 位置变化动作

2013-05-21 10:12 火烈鸟网络科技 人民邮电出版社 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

《Cocos2d-x高级开发教程》第4章动作,在这一章中,我们将为大家详细介绍各种动作的使用方法。读完本章后,读者将会学到《捕鱼达人》游戏中的基本动作机制:鱼的各种游动动作、炮弹的发射动作、渔网的展开动作,以及金币的收集等各种其他动作效果。本节为大家介绍位置变化动作。

AD:2013云计算架构师峰会超低价抢票中

4.3.1 位置变化动作

针对位置(position)这一属性,引擎为我们提供了3种位置变化动作类型,下面将简要介绍这几种动作。

CCMoveTo和CCMoveBy:用于使节点做直线运动。设置了动作时间和终点位置后,节点就会在规定时间内,从当前位置直线移动到设置的终点位置。它们的初始化方法分别为:

  1. CCMoveTo::create(ccTime duration, CCPoint& pos);  
  2. CCMoveBy::create(ccTime duration, CCPoint& pos); 

其中,duration参数表示动作持续的时间,pos参数表示移动的终点或距离。对于CCMoveTo,节点会被移动到pos对应的位置;对于CCMoveBy,节点会相对之前的位置移动pos的距离。

CCJumpTo和CCJumpBy:使节点以一定的轨迹跳跃到指定位置。它们的初始化方法如下:

  1. CCJumpTo::create(ccTime duration, CCPoint pos, float height, int jumps);  
  2. CCJumpBy::create(ccTime duration, CCPoint pos, float height, int jumps); 

其中pos表示跳跃的终点或距离,height表示最大高度,jumps表示跳跃次数。

CCBezierTo和CCBezierBy:使节点进行曲线运动,运动的轨迹由贝塞尔曲线描述。贝塞尔曲线是描述任意曲线的有力工具,在许多软件(如Adobe Photoshop)中,钢笔工具就是贝塞尔曲线的应用。实际上,在《捕鱼达人》游戏中,为了控制鱼的游动,我们就用到了贝塞尔曲线。

每一条贝塞尔曲线都包含一个起点和一个终点。在一条曲线中,起点和终点都各自包含一个控制点,而控制点到端点的连线称作控制线。控制线决定了从端点发出的曲线的形状,包含角度和长度两个参数:角度决定了它所控制的曲线的方向,即这段曲线在这一控制点的切线方向;长度控制曲线的曲率。控制线越长,它所控制的曲线离控制线越近。示例图如图4-1所示。

任意一段曲线都可以由一段或几段相连的贝塞尔曲线组成,因此我们只需考虑一段贝塞尔曲线应该如何描述即可。一段独立的贝塞尔曲线如图4-2所示。

使用时我们要先创建ccBezierConfig结构体,设置好终点endPosition以及两个控制点controlPoint_1和controlPoint_2后,再把结构体传入CCBezierTo或CCBezierBy的初始化方法中:

  1. ccBezierConfig bezier;  
  2. bezier.controlPoint_1 = ccp(20, 150);  
  3. bezier.controlPoint_2 = ccp(200, 30);  
  4. bezier.endPosition = ccp(160, 30);  
  5. CFiniteTimeAction * beizerAction = CCBezierTo::create(actualDuration / 4, bezier);  
  6. http://book.51cto.com/art/201305/394771.htm
原创粉丝点击