了解随机2D方向向量生成

时间:2012-02-27 07:11:05

标签: c# xna

我是C#和XNA的新手。我正在尝试构建一个简单的游戏,我不确定Vector2在方向上使用时是如何工作的。我得到一行代码来产生随机方向,但为什么两个数字是两个位置?是X和Y两者还是第一个只有X和第二个Y?还是关于角度?这可能是100以上的数字吗?

direction = new Vector2(Game1.rnd.Next(-100, 100), Game1.rnd.Next(-100, 100));
direction.Normalize();

1 个答案:

答案 0 :(得分:1)

Random.Next采用两个参数,即随机函数的范围。 Vector2的构造函数只需要两个参数。

2D矢量由两个幅度组成,一个沿X轴,一个沿Y轴。你的代码正在做的是生成一个指向随机方向的随机向量。然后将其用作方向向量,将其标准化,这会导致长度设置为1。

这种情况下的数字是任意的,因为它调用Normalize。您可以使用任何数字,只要X轴和Y轴的范围相等,函数的行为方式就会相同。

请注意,如果X和Y同时为0,则此向量生成方法将失败。这可能看起来很遥远,但可能会发生。