【发布时间】:2011-05-24 14:57:49
【问题描述】:
我正在尝试通过编写一个小型 2D 游戏来学习 XNA,这是一个自上而下的视角,我试图进行双重移动,使用左右键和上下键沿轴移动,以及向右看鼠标光标,让玩家可以同时奔跑和瞄准。
我有一个用于玩家位置 (m_PlayerPos) 的向量和一个用于鼠标位置 (m_MousePos) 的向量,我正在尝试获取指向鼠标位置的正确角度。
我用的是公式法:
公共静态浮点角度(Vector2 从,Vector2 到) { return (float)Math.Atan2(from.X - to.X, from.Y - to.Y); }这行得通,但由于某种原因,该方法只能在沿 x 轴的中途工作。当鼠标在玩家的右边时,玩家会看向鼠标的右边。
但是如果我移动到播放器的顶部,它会向下看,如果鼠标在播放器下方,播放器会向上看。所以我需要反转 Y 轴,但我不确定如何。
提前感谢您的任何反馈。
【问题讨论】:
-
你应该注意 Math.Atan2 期望 y 然后 x,所以你的论点被交换了