2012-03-05 28 views
2

所以,我一直在做一個遊戲一段時間,我碰到了一個障礙。我不知道如何去做這件事。這是我的問題:Sprite Targeting

我有船,前嚮導軌槍和兩枚導彈。火箭炮只能在艦船前方以直線射擊,但如果船隻位於船前的圓錐體中的任何位置,導彈就會發射。問題在於船舶在屏幕上旋轉和移動。對於鐵軌,我需要檢查屏幕上船舶前方是否有船。對於導彈,我需要檢查在船前250英尺內是否有船,但是不超過45度。

任何幫助你們可以給予讚賞。謝謝!

+0

你如何跟蹤船舶的位置VS系統中的目標?你將需要做一些數學運算來弄清楚這些事情。你需要2點和一個方向(你的船指向的地方) – Developer 2012-03-05 01:55:20

+0

我有Vector2的船位和敵人的位置。我也有所有船舶的輪值。 – Jack 2012-03-05 02:28:45

+0

http://www.metanetsoftware.com/technique/tutorialA.html這看起來可能是你要找的東西 – Developer 2012-03-05 02:31:49

回答

2

對於磁軌炮,你可以做財產以後這樣

public delegate void inRange(); 
public event inRange shipInRange; 

pubic void checkRange(){ 
    if(enemyShip.position.x < ship.position.x + 250 || enemyShip.position.x > ship.position.x + 250) 
    shipInRange(); 
} 

巫應檢查enemyship爲250背後或盈雖然我havnt測試。這也是有趣的,你只能在x軸上移動你的船,雖然它很容易添加y軸,但我也推薦你正在面對的女巫方向的chech然後把每個方向的事件,然後聽你正在面臨將是最簡單的方法。 那麼所有你需要做的是偵聽該事件,你需要的時候它發生的導彈 同樣的事情做什麼,但檢查的角度也

此外,如果你有一些示例代碼,我可能能夠提供你有一個更好的例子