2012-10-16 30 views
0

我正在爲Windows Phone 7.1開發基於XNA的2D遊戲。我的要求是基於輕彈的數量和角度輕彈一個物體,它將以垂直的彈射運動進行動畫。對於例如你面前有一個湖,你想扔石頭。相機是人類的眼睛,同樣的動作也必須被複制。如何在XNA 2D遊戲中創建垂直拋物線路徑?

有3個級別的距離被覆蓋。 Y軸覆蓋的距離大於X軸覆蓋的距離。

我可以看到很多關於水平(X軸)拋射體運動的等式,但沒有一個顯示Y軸上的拋射體運動。

任何想法如何在X和Y座標方面實現這種拋射體運動?

+0

如果您在這裏沒有得到答案,請嘗試http://gamedev.stackexchange.com/ –

+0

您尚未接受任何問題的答案。您應該點擊帖子左側的勾號將答案標記爲正確。 – annonymously

回答

1

如果你使用Vector2而不是角度,你可以實現一個非常基本的物理引擎,它將簡單而準確。

要彈起的對象將有Vector2 VelocityVector2 Position

然後,你可以將鼠標之間作爲Vector2添加的距離到Velocity,並添加VelocityPosition每一幀,然後添加重力。

下面是一個簡單的實現:

public class FlickObject 
{ 
    public Vector2 Velocity; 
    public Vector2 Position; 

    public FlickObject() {} 

    public void Update(GameTime t) 
    { 
     Position += Velocity; 
    } 
} 

並在遊戲類(當用戶輕彈的對象):

flickObject.Velocity += FlickDistance; 

哪裏FlickDistance是鼠標之間的距離(或不過你計算它)和對象。

要完成它,加上重力:

flickObject.Velocity += new Vector2(0, GRAVITY); 

GRAVITY設置爲某個正值。

+0

將嘗試這種方法,看看它是否有效。 – bismita