如何在 C#/XNA 的游戏中将玩家移动到单击鼠标的位置

本文关键字:移动 玩家 单击 位置 鼠标 游戏 XNA | 更新日期: 2023-09-27 18:35:11

我现在知道如何用键盘和游戏手柄让飞船移动,但我试图弄清楚如何用鼠标移动它(例如,当我单击屏幕上的某个地方时,玩家移动到该位置)。我已经在游戏中显示了鼠标,但是如何让它跟踪它并接受点击等?

如何在 C#/XNA 的游戏中将玩家移动到单击鼠标的位置

您需要将鼠标提示器的屏幕坐标转换为世界坐标,然后将玩家移动到该世界坐标

移动取决于您的情况(游戏),但最简单的情况是

  1. 计算连接玩家当前位置和所需新位置的矢量,
  2. 将向量归一化为表示单位时间内移动的大小,
  3. 然后通过规范化向量更新玩家的坐标,直到它到达目的地

使用这样的东西,获取鼠标状态并从中获取坐标。然后在游戏中使用图块的大小(如果您的玩家移动到图块,否则忽略它)

 MouseState ms = Mouse.GetState();
    double x = Math.Floor(((double)ms.X  / (double)TILE WIDTH);
    double y = Math.Floor(((double)ms.Y  / (double)TILE HEIGHT);
        if (ms.RightButton == ButtonState.Pressed)
        {
            //Player.Position = new Vector2(x,y)... or something like that

        }
        if (ms.LeftButton == ButtonState.Pressed)
        {
            //And so on...

        }