2012-07-24 51 views
0

我目前正在開發一個2D項目,該項目會在加載的背景上生成隨機黑色地形。我有一個加載和控制的精靈,並試圖找出識別精靈背後的顏色以編碼一些基於顏色的碰撞的最佳方法。我已經嘗試了一堆關於perpixel和color的教程,但它們都依賴於正在使用的碰撞圖或兩個預加載圖像之間的邊界框IE:sprite和碰撞對象。XNA如何獲取精靈背後的顏色

如果任何人都可以指出我在正確的方向,這將是非常appriciated。

回答

2

查詢紋理是一個相對昂貴的操作;我強烈建議您避免實時進行。由於您在運行時以程序方式生成地形信息,爲何不將其存儲在數組中並引用它?

如果需要複合紋理或以創建地形數據進行其他的渲染操作,您可以複製生成的使用下面的代碼渲染目標的數據到系統內存中的數組:

var data = new Color[width * height]; 
texture.GetData(data); 

剛儘量避免再次使用它。

+0

謝謝,我想我們需要做什麼別的碰撞明智那麼接縫的共識是perpix會活着吃這個遊戲。 – 2012-07-24 21:49:15

0

我認爲正確的方向將遠離像素完美的碰撞。大多數人認爲這是必要的,但事實是,99%的遊戲不使用像素完美的碰撞,因爲它們速度慢,難以正確實施,並且對於大多數實際的遊戲來說都是過度的。大多數遊戲使用AABBs,圈子或球體。他們很容易檢測出大多數遊戲之間的衝突,並且「足夠好」。我唯一能說出的使用像素完美碰撞的遊戲是最初的蠕蟲。

這部影片也確實涵蓋碰撞檢測的工作:http://pyvideo.org/video/615/introduction-to-game-development(碰撞檢測@ 1:13:20)

+0

謝謝同上似乎是共識。 – 2012-07-24 21:50:08