半山枫叶的专栏

专注ios开发,让我们一起进步吧!

cocos2d-x实现node圆弧运动
  最近在用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的方向要减去转弯的角度,这样鱼就能正常转弯游动了,还能不时拜摆摆尾巴!


阅读更多
文章标签: action 框架
个人分类: cocos2d-x学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

cocos2d-x实现node圆弧运动

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭