Himi 原創, 歡迎轉載,轉載請在明顯處注明! 謝謝。
原文地址: http://blog.csdn.net/xiaominghimi/article/details/6779873
如果我們想實現讓CCSprite進行拋物線運動的話,那么我想童鞋們首先會想到利用Box2d或者其他物理引擎去為CCSprite創建物理世界中對應的剛體進行實現,但是反過來想,對于不熟悉Box2d或者其他物理引擎的童鞋,肯定不方便,那么Himi今天為大家介紹另外一種不實用物理引擎實現CCSprite拋物線方式;
這里我直接將封裝好的方法貼上來,注釋都在代碼中了:
之前在Android上我也有講解過貝塞爾曲線的博文,但是Android中不同于cocos2d封裝這個,在cocos2d中的Bezier是封裝為了精靈動作,讓精靈按照貝塞爾曲線的路線去運動;那么以上封裝的代碼中對于拋物線運動來說最重要的一點就是創建貝塞爾曲線的第二個點,這個點控制著精靈路徑的所經過的最高點,這里務必要知道;
這種實現方式雖然沒有物理系統對剛體施加力來的真實,但是!我想這段代碼的實用性還是很大的,至少不需要使用box2d引擎相關知識,最重要的優點是不會存在上一章介紹的代碼混編帶來的編譯錯誤~
//---- OK,下面來介紹第二個知識點:
很多童鞋學習cocos2d,一般不經常更新的動畫,會使用cocos2d封裝的動作,例如旋轉、漸變、位移等等,那么一旦使用動作后,肯定就有需要兩個動作一起播放的需求,那么基本上童鞋們大腦中第一閃現的就是利用cocos2d的動作序列 CCSequence,但是效果不理想,原因很簡單,因為顧名思義,既然是動作序列,那就是按照動作的順序一個動作一個動作的進行播放,也就是說利用動作序列只能達到連續播放動作,無法同時播放動作的目的;
那么在這里給大家一個方法能讓兩個動作同時播放的方法:
這里為了講解方便,我在剛才封裝的貝塞爾曲線上的方法上進行修改,添加一個旋轉的動作,讓貝塞爾曲線運動與旋轉動作同時播放,這里Himi使用一根“矛”的圖片作用示意圖來說明,因為矛與箭的運動方式最常用的動作肯定是一邊旋轉一邊拋物線位移,這樣才更加真實;
OK,看下封裝角度后的拋物線并同時旋轉方法如下:
附上運行效果圖:
左側的矛是起始位置,后側的是拋物線與旋轉兩個動作同時進行運動中的矛~
好了,就講這么多吧,今天樣書出來了,比較海皮~哈哈;
【Cocos2d游戲開發之十三】CCSprite利用Bezier(貝塞爾)做拋物線動作并讓CCSprite同時播放兩個Action動作!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
