box2d 新建復合多邊形物體

2021-08-26 19:54:40 字數 1444 閱讀 9926

方法:

-(vector*) parsepolyarrstr:(nsstring*)polyarrstr vector*target = new vector(); nsarray *childshapes = [polyarrstr componentsseparatedbystring:@"z"]; for(uint i = 0; i < [childshapes count]; ++ i) return target; }

用例:-(void) addbear // 熊的 sprite 不放到任何 batch 裡面,因為只有乙個,而且熊的動畫很多,到時候很有可能會用上第二張,第三張紋理~ ccsprite *sbear = [ccsprite spritewithspriteframename:@"animbear0.png"]; [sbear setposition:ccp(po.x * ptm_ratio, po.y * ptm_ratio)]; // release->debug 揪出的第乙個bug(release模式下重複新增並不會出錯)~ // [_gamelayer addchild:sbear]; // [_single spriterunrepeataction:sbear animname:animation_cache_bear_walk]; ccanimation *walkanim = [[ccanimationcache sharedanimationcache] animationbyname:animation_cache_bear_walk]; ccanimate *walk = [ccanimate actionwithanimation:walkanim restoreoriginalframe:no]; ccanimation *turnanim = [[ccanimationcache sharedanimationcache] animationbyname:animation_cache_bear_turn]; ccanimate *turn = [ccanimate actionwithanimation:turnanim restoreoriginalframe:no]; ccanimation *attackanim = [[ccanimationcache sharedanimationcache] animationbyname:animation_cache_bear_attack]; ccanimate *attack = [ccanimate actionwithanimation:attackanim restoreoriginalframe:no]; ccsequence *sequence = [ccsequence actions:walk, turn, attack, nil]; ccrepeatforever *repeataction = [ccrepeatforever actionwithaction:sequence]; [sbear runaction:repeataction]; body->setuserdata(sbear); [_gamelayer addchild:sbear z:-8]; }

Box2d 自定義多邊形

注 點選滑鼠新增body,r鍵清空body 原來要註冊才能看到swf的,附有截圖 package private function init e event null void private function onkeydownhandler e keyboardevent void privat...

Box2D 三 建立圓,長方形,凸多邊形

下面說下凸多邊形的建立 box2d允許你建立任何種類的多邊形形狀,只要多邊形是凸多邊形,這將意味著它擁 有的所有內角要小於180度,所有的頂點要遠離中心,而且你要按順時針方向排列它們。建立過程 1.首先,建立乙個向量 vector 來儲存所有的頂點 var vertices vector.new v...

基於2D多邊形的碰撞檢測和響應 一

簡介 本文是闡述如何在2d動作遊戲中進行精確而高效的碰撞檢測。這裡的碰撞是基於多邊形而不是基於精靈的。這兩者之間在設計上會有不同。基於精靈的碰撞檢測是通過精靈之間的重疊的畫素來完成的。而多邊形使用向量數學來精確計算交點,時間和碰撞方向。雖然多邊形僅僅是精靈的乙個近似,但是它比精靈系統要高階。特性本文...