cocos2d-x实现node圆弧运动

转载 2012年03月26日 10:17:06
  最近在用cocos2d-x做鱼在水池里游动,直线游动比较容易实现,但是要使鱼转弯,绕着圆弧游动就有点难度了,不仅鱼的位置是圆的轨迹点,它的方向也要跟着相应变化,并且要准确控制它是顺时针转还是逆时针。搞了大半天,不断试验不断修改,终于把它封装成一个CCArcByaction, 以后可以直接拿来用了。 CCArcBy的初始化方法是

         bool initWithDuration(ccTime duration, float radius, float angle, bool clockwise);  

      只要给定转弯的半径,角度,时针方向和时间,就可以让node绕着圆弧进行运动,并且相应改变它的方向。具体原理是运行该action时候,会根据当前nodepositionrotation创建直线方程lq,创建垂直于直线lq并且相交于position的直线方程lq2, 根据时针方向创建与直线lq平行并且距离为radius的直线方程lq3, 计算lq2q3的交点就是圆弧的圆心位置了。

       在圆弧运动每次update过程中,调用框架自带的ccpRotateByAngle方法就能得到当前node的位置了,而node的方向要减去转弯的角度,这样鱼就能正常转弯游动了,还能不时拜摆摆尾巴!


相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

[iuud8]基于cocos2dx3.2自定义圆周运动

这个运动简单地实现了一下,可以凑合用,但是并没有实现动作的clone与reverse,先留一个坑,免得忘记了,以后抽时间完善。。。。。。。 .h文件。。。 class CircleMove...

cocos2dx 3.2 学习篇之六(精灵运动,自定义运动轨迹(太极八卦))

好了,今天想要讲的是如何让精灵按照自己定义de

小小菜之Cocos2d-x游戏开发旅程——Lua之抛物线运动

今天用Lua实现了抛物线运动,将炮弹发射出去,呈抛物线运动,当进入水里之后,进行减速...

cocos2d-x实现node圆弧运动 (附源代码)

纪录下自己写的东西! 头文件: /* 圆弧动作类 */ class CCArcBy : public cocos2d::CCActionInterval { public: //初始化圆弧动作类 ...
  • daoxwj
  • daoxwj
  • 2014年10月25日 16:50
  • 2783

cocos2dx之弧度和角度的互换

分类: C/C++ cocos2dx学习2014-01-16 11:55 1135人阅读 评论(0) 收藏 举报 在cocos2dx中,提供了两个宏进行弧度和角度的互换(ccMacros...
  • dj0379
  • dj0379
  • 2014年08月18日 14:43
  • 3212

cocos2d-x2.2实现椭圆运动,参数为中心点坐标和长半轴、短半轴

CCAction运动中没有实现椭圆运动或者圆周运动,于是在网上找了很多相关帖子,有一个CCCircleBy可以实现圆周运动,但是当使用CCRepeatForever循环运动时,总是会卡一下,所以在网上...

cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)

ufolr原创,转载请注明: 转载自ufolr的博客 原文连接:http://blog.csdn.net/ufolr/article/details/7624851      ...
  • ufolr
  • ufolr
  • 2012年07月22日 23:19
  • 12046

【Cocos2d-x】使用贝塞尔曲线(Bezier)实现精灵抛物线运动

【Cocos2d-x】使用贝塞尔曲线(Bezier)实现精灵抛物线运动
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x实现node圆弧运动
举报原因:
原因补充:

(最多只允许输入30个字)