我正在做一個小行星類型的遊戲,但我努力隨機化他們的運動。隨機運動
這使得它從上到下,但我希望它們讓小行星向四面八方移動,我怎麼能這樣做?
public void Move()
{
for (int i = 0; i < asteroidList.Count; i++)
asteroidList[i] = new Vector2(asteroidList[i].X, asteroidList[i].Y + 2);
}
我正在做一個小行星類型的遊戲,但我努力隨機化他們的運動。隨機運動
這使得它從上到下,但我希望它們讓小行星向四面八方移動,我怎麼能這樣做?
public void Move()
{
for (int i = 0; i < asteroidList.Count; i++)
asteroidList[i] = new Vector2(asteroidList[i].X, asteroidList[i].Y + 2);
}
您應該將另一個屬性添加到Asteroid類。說MotionVector。從Random.Next()初始化它的X和Y成員。現在您只需將這些添加到此循環內的X和Y屬性中。
每個Asteriod
可能有CurrentPosition
財產(可能是Point
(不知道你是否需要整數或浮點數X和Y座標)和CurrentVelocity
財產(2維(可能float
))載體,其X組件代表的X軸上的速度,Y軸上的速度表示Y軸上的速度)。
當你創建你的小行星時,你可以指定CurrentPosition,它可以來自剛毀壞的父小行星的位置,也可以隨機初始化下一個「等級」的新小行星。
在Move()
期間,您將CurrentPosition
增加CurrentVelocity
。
如果分配定義運動的固有物理,每個Asteroid
的屬性,你可以支持像旋轉的小行星,加速或減速小行星有趣的事情等等