2010-11-21 71 views
0

我正在做一個小行星類型的遊戲,但我努力隨機化他們的運動。隨機運動

這使得它從上到下,但我希望它們讓小行星向四面八方移動,我怎麼能這樣做?

public void Move() 
{ 
    for (int i = 0; i < asteroidList.Count; i++) 
     asteroidList[i] = new Vector2(asteroidList[i].X, asteroidList[i].Y + 2); 
} 

回答

1

您應該將另一個屬性添加到Asteroid類。說MotionVector。從Random.Next()初始化它的X和Y成員。現在您只需將這些添加到此循環內的X和Y屬性中。

1

每個Asteriod可能有CurrentPosition財產(可能是Point(不知道你是否需要整數或浮點數X和Y座標)和CurrentVelocity財產(2維(可能float))載體,其X組件代表的X軸上的速度,Y軸上的速度表示Y軸上的速度)。

當你創建你的小行星時,你可以指定CurrentPosition,它可以來自剛毀壞的父小行星的位置,也可以隨機初始化下一個「等級」的新小行星。

Move()期間,您將CurrentPosition增加CurrentVelocity

如果分配定義運動的固有物理,每個Asteroid的屬性,你可以支持像旋轉的小行星,加速或減速小行星有趣的事情等等