2016-11-20 230 views
1

我目前正在開發一個非常基本的3D OpenGL遊戲的C++過程,作爲一個小型大學項目的一部分。然而,我們並沒有從老師那裏得到很多的見解,只有非常有限的文件,以及一個小的時間框架,所以我現在有點迷失在這裏。基本的3D OpenGL碰撞檢測C++

我的遊戲是在一個正交平面上的坦克戰鬥,幾乎看起來像我在下面草繪的圖像。每個坦克(A和B)可以由不同的玩家控制,並且每個坦克都可以發射射彈,這些射彈應該在碰撞時影響另一坦克的得分。

enter image description here

我的問題是,什麼是有效地實現碰撞的坦克最簡單的方法? (坦克對坦克,坦克對地圖邊界和坦克vs任何類型的平行六面體物體,如圖片中心的物體 - 同樣的東西,但適用於從坦克炮塔射出的射彈)。

理想情況下,不需要使用外部物理引擎,但如果實現可以輕鬆完成,也可以接受。目前,我只使用GLUT庫。

回答

2

將Box2D(http://box2d.org)下載並整合到您的項目中。

除非你的項目是實現一個物理引擎,否則不要自己動手做。學習如何整合圖書館以及適當的物理引擎是如何工作的,你的時間會好得多。

然後你可以很容易地使用箱子對撞機爲你的坦克,圓形的射彈和4線爲你的周界。當拋射物與另一個坦克相撞時,您可以創建回調來通知您。

你將不得不使用力量和力矩來移動和旋轉你​​的坦克,而不是隻更新他們的位置。但是如果你要自己實現物理學,你可能必須這樣做。