簡體   English   中英

如何在C#/ XNA中將玩家移動到單擊鼠標的位置?

[英]How do I move a player to where my mouse is clicked in a game in 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...



        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM