随机运动

时间:2010-11-21 19:35:04

标签: c# random

我正在制作一个小行星类型的游戏,但我正在努力将它们的运动随机化。

这使它从上到下但我想要它们所以小行星向四面八方移动,我怎么能这样做?

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

2 个答案:

答案 0 :(得分:1)

你应该在Asteroid类中添加另一个属性。说MotionVector。从Random.Next()初始化其X和Y成员。现在你只需要将这些添加到这个循环中的X和Y属性。

答案 1 :(得分:1)

每个Asteriod都可能有CurrentPosition属性(可能是Point(不确定是否需要整数或浮点X和Y坐标)和CurrentVelocity属性(一个二维(可能是float))向量,其X分量代表X轴的速度,Y分量代表Y轴的速度。)

当您创建小行星时,您可以从刚刚被破坏的父小行星的位置分配当前位置,或者在您为下一个“级别”随机初始化新的小行星时分配它。

Move()期间,您将CurrentPosition增加CurrentVelocity

如果你为每个Asteroid分配一个定义运动固有物理特性的属性,你可以支持有趣的事情,如旋转小行星,加速或减速小行星等。