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

时间:2012-05-23 15:37:54

标签: c# xna mouse

我知道如何让船只用键盘和游戏手柄移动,但是我想弄清楚如何用鼠标移动它(就像在我点击屏幕上的某个地方时玩家移动到那个位置)。我有鼠标在游戏中显示,但我如何让它跟踪它并接受点击等?

2 个答案:

答案 0 :(得分:1)

您需要将鼠标cusror的屏幕坐标转换为世界坐标,然后将播放器移动到该世界坐标

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

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

答案 1 :(得分:0)

使用类似的东西,获取鼠标状态并从中获取坐标。然后使用游戏中瓷砖的大小(如果你的玩家移动到瓷砖,否则忽略它)

 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...



        }