2012-06-08 57 views
0

我對使用box2D和cocos2D製作的遊戲有個簡單的問題。我昨天開始使用物理引擎,所以我對它的使用和功能缺乏經驗。我的遊戲涉及使用加速度計在屏幕周圍滾動一個球。我想在地面上增加一些孔,如果球滾入,則需要通過加速度計獲得更大的加速度以逃離孔穴。我玩過摩擦,線性阻尼,修改加速度計的重力矢量,並嘗試添加吸引力,但我沒有取得太多成功,其中一些並沒有很好地模擬我想要發生的事情。基本上我只是想創建一些傳感器,並給他們一個球可以落入的小口袋的屬性。任何提示和建議非常感謝。謝謝Box2D創建小口袋洞

+0

我本來以爲朝口袋中心增加吸引力就可以。也許你可以告訴我們你是如何做到的。 – iforce2d

回答

0

我建議你使用關卡助手。它是創建基於物理的遊戲的絕佳工具。

你可以找到它here

0

你可以把球每一幀的y位置,如果它是低於某一閾值,那麼它是一個洞。基於此,如果球在洞中,則降低靈敏度。當球離開洞時,將靈敏度恢復正常。

至於創建孔,請使用Vertex Helper創建對應於您的精靈的物體。

如果您需要更多解釋,請隨時詢問。

闡述:

Example

現在,基本的圖片,我描繪了我所要更早形容。如果玩家的Y位置低於某個特定點,您所需要做的就是改變傾斜感度。我只是以50爲例。

一些僞代碼:

- (void)update:(ccTime)dt 
{ 
    if (player.position.y >= 50) { //If the player's y position is above or equal to 50 
     if (sensitivity != normalSensitivity) { //We don't need to set it every frame, so lets check 
      sensitivity = normalSensitivity; 
     } 
    } 
    if (player.position.y < 50) { //If player's position is below our threshold of 50 
     if (sensitivity != limitedSensitivity) { //Check so we don't set the sensitivity every frame 
      sensitivity = limitedSensitivity; 
     } 
    } 
} 

現在,只要頂點助手而言,它是一個開源工具(我相信),可以幫助你定義自定義形狀的頂點,然後可以複製並直接粘貼進入你的box2d或花栗鼠cocos2d項目。它可以很喜歡here

我建議使用Google搜索關於如何使用它的教程。這很簡單,但您可能需要快速參考才能開始使用。

最後,要記住的是,box2d只能使用凸形而不是凹形。 凸形是一種形狀,不可能從任何頂點到另一個頂點繪製一條線,而不通過形狀本身。基本上沒有縮進的東西。

Convex vs concave

我希望這有助於。我不確定我能否比我詳細說明,但如果您有更具體的問題,請隨時提問。

+0

你可以請你擴展一下你的意思。謝謝,我感謝你的幫助。 – Eric

+0

@Eric我闡述了,請看原答案。 – tallen11

+0

謝謝,我應該指出遊戲是從俯視角度來看的,而且這是一個2D引擎,從這個角度來看,所有的東西都會出現在同一個平面上。我玩弄了四周,開始與我的球接觸並最終接觸球體,傳感器和接觸者,並且從這個鳥瞰圖中有一個體面的小洞。我感謝你的意見。 – Eric