我正在用C#/XNA做一个简单的游戏。我的演员们把他们打算成为Vector2的方向存储起来。在每个更新周期,我将标题规范化(因为它的设置方式可能导致不同的长度),并添加heading*Speed到位置以移动参与者。
这看起来很不雅致。从逻辑上讲,一个方向没有长度,它是单位长度的定义。实际情况下,常量归一化的计算量是微不足道的。
NormalizedVector2吗?Vector2兼容的(即可以添加到它中等等)?扩展Vector2并重写Length属性?发布于 2012-10-13 01:26:51
Vector2。Vector2是struct,所以你不能轻蔑它。但是,您可以创建自己的类型,并提供一个方法将其转换为Vector2 (通过创建一个新的Vector2)。实际上,我怀疑您当前的方法(使用Vector2并只调用规格化可能是最好的方法。如果您真的担心很多调用,请使用out作为参数,因为它的效率略高一些。
发布于 2012-10-13 01:47:15
发布于 2012-10-13 12:14:19
我是不是遗漏了什么?归一化向量就是x+y总和为1并指向一个方向的向量。它没有长度,就像任何向量一样。
您可以将规范化向量存储在同一类型的向量中。当然,当你需要改变某些事情的方向时,你需要更新它。
这里描述了一个相当简单的概念:http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.vector2.normalize.aspx
https://stackoverflow.com/questions/12869066
复制相似问题