2013-05-12 67 views
0

我在我的比賽中有一個想法,有3層地圖,第一個是地面,第二個是道路/草地/等等,第三個是無法通過的物體,如牆壁/建築/湖泊/河流/棵。我擁有它,所以玩家在屏幕中間居中,而地圖的各層以與玩家想要去的相反的方向移動。我認爲如果playerModel重疊在impassableLayer上繪製的東西上,那麼我會擁有不同的圖層,然後playerModel會向後移動。但是,由於我是xna的新手,我不知道如何讓遊戲認識到playerModel將無法通過的層上的不可通過的對象重疊。顯然,無法訪問的層只包含對象,並且在沒有對象的地方是空的。所以我不能說:Xna保持地圖重疊部分的球員

if (playerModel.X > impassableLayer.X) 
{ 
    impassableLayer.X++; 
} 

因爲這將永遠是真的。

有沒有辦法判斷一個對象是否與一個圖層重疊?

回答

0

你在找什麼是碰撞檢測我相信。你想保持對象不通過對方。它不像你的想法那麼簡單。真正的碰撞檢測將需要大量的工作,但它們是大量的教程。

您可以隨時在此網站或谷歌上搜索,有許多資源,針對這一點那裏。

+0

那麼這是否意味着我將不得不實例化每個Building/lake/tree並將它們放置在具有單獨座標的地圖上?看起來好像它會花費很多時間和記憶,因爲如果我在地圖上有10,000棵樹,遊戲必須首先創建10,000棵樹中的每棵,然後將它們放置在地圖上,對吧? – user2375782 2013-05-12 22:06:33

+0

是的,但是,在計算中,10,000不是很多。我的遊戲中有超過2000萬個物體。 – Cyral 2013-05-12 22:54:28

+0

我看到了,看着這個像素碰撞的東西到目前爲止,雖然它看起來像它的說法,如果「物體」正在觸摸透明像素它不算作一個碰撞的權利?所以我不能繼續使用這種方法,因爲圖層上唯一不透明的像素是對象的那些像素? – user2375782 2013-05-13 00:19:16