2013-04-26 29 views
-4

我是一個完整的newb,致力於2D RTS遊戲。到目前爲止,我已經創建了一個對象「步兵」,並且可以讓它在特定的方向上拍攝一個「子彈」,並且只能在房間外找到刪除子彈的代碼。我希望子彈在距離步兵300像素的相對距離處刪除。並且需要代碼非常乾淨,因此最終會有很多子彈。我的問題是:我是否應該在步兵周圍製作一個矩形,指定距離和視線,以及何時子彈與range = delete相沖突?或者如果子彈類說「一旦創建+距離旅行= 300像素=刪除」?...任何代碼,或者你可以提供的提示將不勝感激。當「創建」時,使「對象」在「距離」刪除? C#編程

+0

http://gamedev.stackexchange.com/ – jcollum 2013-04-26 16:05:33

+6

我強烈建議如果你真的是一個完整的新手,你應該從比RTS遊戲簡單的事情開始。 – 2013-04-26 16:07:36

+1

我做了比較簡單的遊戲,並觀看了很多教程,但都沒有提供對我遇到的問題的理解。我們都在某個時間處於這個位置,被困在某個地方。而有人的幫助總是比別人的懷疑要好。 – 2013-04-26 16:16:21

回答

0

簡單的方法:

  • 商店原點,其中彈丸創建(在槍管)
  • 每一幀,使用距離公式,以找出是否彈丸已經超過了旅遊半徑。
  • 您可以通過比較半徑的平方來避免距離公式中的Math.Sqrt調用。

    var dx = xbullet - xorigin; 
    var dy = ybullet - yorigin; 
    if (dx*dx + dy*dy > range*range) delete bullet 
    
+0

這非常有幫助,謝謝(= – 2013-04-26 16:29:30

0

我認爲你的第二個建議是更好的。如果你製作一個盒子或者檢查與士兵的距離,那麼如果士兵在子彈後面跑步(如果子彈不是即時行駛的話,那麼子彈可以行進更長的時間)。