关闭

cocos2d-x实现node圆弧运动

标签: action框架
2391人阅读 评论(1) 收藏 举报
分类:
  最近在用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的方向要减去转弯的角度,这样鱼就能正常转弯游动了,还能不时拜摆摆尾巴!


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:325994次
    • 积分:3834
    • 等级:
    • 排名:第8264名
    • 原创:41篇
    • 转载:116篇
    • 译文:1篇
    • 评论:22条
    最新评论
    ios专栏
    ios专栏