2012-10-09 81 views
0

我試圖在iPhone和cocos2d上創建一個平臺遊戲。 我還沒有解決使用Box2D ......但取決於我如何解決這個問題,或者不是,我可能不得不使用它。在cocos2d跳躍和colisions

我的問題是跳。 當我的角色(精靈)沿着一個平坦的壁架運行時,我試圖跳到壁架的末端,有時候,有效地,我在角色有效地「走出」壁架之後立即按下跳躍。 視覺上和身體上都覺得很奇怪,因爲我幾乎可以肯定每次我在最後一刻都在按下,但是不是,這是一回合太晚了。

有沒有人遇到同樣的問題,並知道一個聰明的方式來處理它?

回答

1

我想,你的情況,你可以簡單的考慮到了它們的精確,讓你OTO後「離開」的平臺讓你跳了一下。

反正Box2D的是一個相當不錯的物理引擎,可以讓你檢測碰撞和模擬機構的行爲(例如,它可以自動碰撞後應用於旋轉物體)。互聯網上有很多手冊,可以幫助你理解它的工作原理。

+0

不知道你用「精確度」來判斷。你可以解釋嗎 ? – teuteuguy

0

我猜你只使用人物的位置,以確定他是否仍然窗臺上。如果是這樣,角色將在他的中心點越過窗臺時「失去基礎」。沒有一款遊戲機會這麼做。

而應該測試字符的整個邊界框寬度。只要邊界框的左下角或右下角仍然位於可行走的平面上,角色就不能從凸臺上掉下來。你會在許多平臺遊戲中看到這一點,人物仍然站在窗臺上,只有一隻腳仍然在窗臺上。

兩件事情你可能感興趣的:

Guide to implementing 2D Platformers。涵蓋幾乎所有你需要知道的東西。沒有代碼,但很容易遵循算法的說明。

然後有Commander Cool,一個商業平臺遊戲套件與cocos2d & box2d。如果你有興趣加快開發速度,而不是花時間重新研發平臺遊戲框架代碼。

+0

我正在使用邊界框系統,並且爲了適應48x48px精靈中的「細長」字符而將其縮小。 ALGO是: - 位置更新的第二 1/60 - 碰撞測試是由(邊框明智) - 異步跳轉可以來自觸摸 我想我的問題在於:我計算(更新)目的地到某個地方「關閉」窗臺(運動+重力),然後我通過碰撞。 在計算dest之後,可能會按下跳躍,並且由於目的地是「關閉」在窗臺上或在空中......這會使跳躍失效。 有什麼想法? 我會看看你給的2個鏈接。看起來很有趣。 – teuteuguy