【问题标题】:How do I move a player to where my mouse is clicked in a game in C#/XNA?如何在 C#/XNA 的游戏中将玩家移动到我的鼠标被点击的位置?
【发布时间】:2012-05-23 15:37:54
【问题描述】:

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

【问题讨论】:

    标签: c# xna mouse


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-12
        • 1970-01-01
        • 2022-06-10
        • 1970-01-01
        相关资源
        最近更新 更多