2010-07-20 171 views
4

有沒有什麼方法可以生成一個曲線類,然後在XNA的屏幕上以二維方式繪製該曲線?在XNA中繪製二維曲線

我想基本上隨機使用曲線生成一些地形,然後繪製它。希望我可以用那條曲線來檢測與地面的碰撞。

回答

4

這聽起來像你想要的是高度圖的2D等價物。我會避免做一個真正的「曲線」,並簡單地用線段近似一個。

所以基本上你會有一個數組或數組的列表,它們代表了一系列均勻間隔(水平)點的地形高度。當你需要兩點之間的高度時,你只需在兩者之間進行線性插值。

要生成它 - 你可以隨機設置幾個點,然後做一些平滑插值來設置其餘的。 (這真的取決於你想要什麼樣的曲線。)

要呈現它然後你可以使用三角形條。高度圖中的每個點都有兩個與其關聯的頂點 - 一個位於屏幕的底部,另一個位於高度圖中該點的高度。

要做碰撞檢測 - 最簡單的方法是讓你的物體成爲一個點(這聽起來像你正在製作一個像Scorched Earth的火炮遊戲) - 只需取對象的X位置,你的地形在你的X位置的Y位置,如果你的對象的Y位置低於地形,請將它設置爲使它位於地形的表面上。

這是粗略的指導,無論如何:)