我的游戏中有一些物体在45度和90度时移动得更快。
每个对象都有
- 点(x,y)的位置
- Vector2D(x,y)方向
- 整机速度
我在更新过程中所做的就是计算新职位:
position.x += direction.x * speed
position.y += direction.y * speed
我该如何纠正?我希望它以相同的速度在任何角度移动。
8
使用前将方向矢量归一化;问题解决了。
—
deceleratedcaviar
不得不谷歌规范化:)找到了这个有用的网站fundza.com/vectors/normalize/index.html
—
Jason94年
并且,如果您要使用用户输入来控制此对象,请注意按照XNA开发人员的说明锁定到12、3、6、9方向:xona.com/2010/05/03.html。它可能是您想要的(例如在RPG游戏中),也可能不是您想要的(例如在Geometry Wars风格的游戏中)。
—
Xonatron 2012年