cocos2d-x實現node圓弧運動

來源:互聯網
上載者:User

      最近在用cocos2d-x做魚在水池裡遊動,直線遊動比較容易實現,但是要使魚轉彎,繞著圓弧遊動就有點難度了,不僅魚的位置是圓的軌跡點,它的方向也要跟著相應變化,並且要準確控制它是順時針轉還是逆時針。搞了大半天,不斷實驗不斷修改,終於把它封裝成一個CCArcBy的action, 以後可以直接拿來用了。 CCArcBy的初始化方法是

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

      只要給定轉彎的半徑,角度,時針方向和時間,就可以讓node繞著圓弧進行運動,並且相應改變它的方向。具體原理是運行該action時候,會根據當前node的position和rotation建立直線方程lq,建立垂直於直線lq並且相交於position的直線方程lq2, 根據時針方向建立與直線lq平行並且距離為radius的直線方程lq3, 計算lq2和q3的交點就是圓弧的圓心位置了。

       在圓弧運動每次update過程中,調用架構內建的ccpRotateByAngle方法就能得到當前node的位置了,而node的方向要減去轉彎的角度,這樣魚就能正常轉彎遊動了,還能不時拜擺擺尾巴!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.