2011-08-12 16 views
0

好了,我正在做一個小坦克遊戲,我需要讓我的坦克射擊的子彈,坦克可以移動,反過來,罐的頂部打開它自己的,用鼠標。現在我的問題是,我將如何使它看起來像子彈從桶中射出,並且角度和位置都很好?我有點困惑。向前移動圖像,但將其與旋轉同步?

+0

您是否在使用XNA? – RandomEngy

+0

發佈代碼說明您如何管理坦克的位置以及坦克踏板和坦克炮塔的旋轉? –

+0

這是2D還是3D?當你在學校教你角度測量時你有沒有注意到? – 2011-08-12 20:57:11

回答

2

最簡單的方法是從你的坦克桶/中心開始啓動子彈和排序他們的桶和罐後面,解僱他們的相同方向的桶指出。不需要特殊的旋轉,但會導致輕微的延遲,直到子彈從坦克後面出現。

或者,你做一些數學。放一個熱點或記錄桶的開始座標,當你旋轉桶時,用它旋轉這個點。這將成爲產生子彈的新點。

2

3D API,如DirectX和OpenGL都稱爲「模型空間」與「世界空間」的理念;其中模型空間是與單個模型相關的一組座標,而不管它在世界的哪個位置,而世界空間是與整個世界本身相關的一組座標。要從模型空間中獲取座標,座標只對單個模型有意義,並將其轉換爲座標對整個遊戲世界有意義的世界空間,則將座標乘以稱爲世界矩陣的矩陣,這對世界上每個模型的實例都是獨一無二的。

所以基本上:

{X,Y在模型空間座標} * {模型實例的世界矩陣} = {X,Y在世界空間座標}

您應該應用同樣的方法將2D遊戲。坦克精靈桶的末端總是與坦克圖像的X,Y座標相同。但是當你的坦克正在顯示在屏幕上時,你的坦克圖像正在經歷一些轉變(圍繞一個點旋轉)。你基本上只需要拍攝X,Y坦克圖像上的桶底的協調和相同改造適用於它,這會給你的X,Y的在桶底是座標目前在屏幕上。

然後從那裏,乘坐坦克的旋轉角度以確定它被解僱後彈丸應該去哪個角度。