嘿,我想做一個基本的曲棍球風格的比賽。 我有與球場,球員,對手和球一起工作的基本物理學。區分球和球員在進球衝突
我很努力地弄清楚我怎樣才能讓球進入球門 ,同時讓球員和對手不要進球。
基本上對手跟隨球,並且玩家由用戶輸入控制。 所以有兩個我需要的限制。
我需要創建一個只有球可以通過的形狀......這甚至有可能嗎? 如果球通過球門線,我可以睡覺對手嗎?
我是否正確地做了這件事?
PLAYER1只能左右移動紅框 Player2只能左右移動綠色框中 球可以在外藍盒子
嘿,我想做一個基本的曲棍球風格的比賽。 我有與球場,球員,對手和球一起工作的基本物理學。區分球和球員在進球衝突
我很努力地弄清楚我怎樣才能讓球進入球門 ,同時讓球員和對手不要進球。
基本上對手跟隨球,並且玩家由用戶輸入控制。 所以有兩個我需要的限制。
我需要創建一個只有球可以通過的形狀......這甚至有可能嗎? 如果球通過球門線,我可以睡覺對手嗎?
我是否正確地做了這件事?
PLAYER1只能左右移動紅框 Player2只能左右移動綠色框中 球可以在外藍盒子
如果您使用Box2D,您可能需要查看傳感器。
從Box2D Manual摘自:
有時候遊戲邏輯需要知道何時兩場比賽重疊但不應該有碰撞響應。這是通過使用傳感器完成的。傳感器是檢測碰撞但不產生響應的固定裝置。
您可以將任何燈具標記爲傳感器。傳感器可能是靜態的或動態的。請記住,你可能有多個固定裝置,你可以有任何混合的傳感器和固體裝置。
傳感器不生成接觸點。有兩種方法可以得到一個傳感器的狀態:
- b2Contact :: IsTouching
- b2ContactListener :: BeginContact和EndContact
你爲什麼不使用簡單的走動碰撞檢測?
如果在曲棍球場上移動的物體是類型球員,並且他的位置/撞擊箱與球門碰撞,那麼您將他的位置改回線路,因此他可能無法與目標相交。
如果對象的類型是不是一個球員,你簡單的讓對象傳遞
好了,你不要讓玩家在公平的競爭環境留給向左或向右你呢?所以你只需要爲球員的目標區域做相同的邏輯。
遊戲區是用靜態物體一直創建的,有沒有辦法在box2d中創建一個虛擬邊界框? – Rob 2011-03-23 12:40:14
看起來你可能會發現。 – Rob 2011-03-23 23:18:20