我正在制作一个小行星类型的游戏,但我正在努力将它们的运动随机化。
这使它从上到下但我想要它们所以小行星向四面八方移动,我怎么能这样做?
public void Move()
{
for (int i = 0; i < asteroidList.Count; i++)
asteroidList[i] = new Vector2(asteroidList[i].X, asteroidList[i].Y + 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
分配一个定义运动固有物理特性的属性,你可以支持有趣的事情,如旋转小行星,加速或减速小行星等。