2012-05-16 56 views
1

我決定在Java中製作2D遊戲(使用slick2d庫和MarteEngine),我試圖在沒有平鋪地圖的情況下進行。看起來,如果沒有平鋪地圖,我即將開展的任務將非常困難。這些任務是路徑和碰撞(建築物和玩家/ NPC之間)。未使用平鋪地圖的Java 2D遊戲

難以輕易實現尋路和碰撞系統嗎?我想我總是可以在遊戲中手動創建網格,但考慮到我必須移動它,因爲我有一個功能相機,可能會變得有點麻煩。

另外,碰撞意味着單位走進對方,成爲一個單位。我想這可以歸類在路徑下,但我沒有解決方案來解決它們從重疊。

任何想法感謝!

回答

3

很多遊戲仍然將地圖劃分爲不同的地圖,即使它不是基於瓦片的遊戲。

原因是,您可以通過檢查對象是否與當前圖塊或任何相鄰圖塊中的任何對象重疊來執行碰撞檢測。只要你的物體不大於瓦片,這個碰撞檢測方案就能保證能夠解決所有可能的碰撞。

編輯

如果您exisiting圖形不在瓷磚爲主,它仍然是值得使用這種碰撞檢測「虛擬」網格等,您可以將特定的方格爲完全或如果你想檢測與地圖特徵等的碰撞,則部分「阻塞」。

+0

由於我已經有一位朋友在我們使用的地圖中提供了很多細節,我們不想重新開始,您是否建議在運行時將地圖劃分爲遊戲? – Paha

+0

是的,它只是一個運行時間的事情。瓷磚是「不可見的」 - 它們不需要影響圖形。它們僅用於定位和碰撞限制。想想你擁有的任何圖形上的一個不可見的「網格」。 – mikera

+0

好吧,我也會創建一個包含X和Y值的對象的數組列表?如果我這樣做,我有一個移動物體的相機(假設我在5k X 5k地圖上做100x100的方格),我真的必須通過250k物體循環移動它們的X和Y嗎?也許我會通過睡眠來想一些事情。謝謝! – Paha