簡體   English   中英

XNA鼠標移動失去精靈

[英]XNA Mouse move lose sprite

我在xna 2D精靈中進行了一個簡單的測試,並嘗試使用鼠標移動它,但是它可以正常工作,但是如果我稍稍移動一下,該精靈就會丟失,我會一直按住左鍵,然后回到精靈阻力繼續...

我不知道為什么我移動得太快會失去精靈???

這是我的移動邏輯:

MouseState ms = Mouse.GetState();
if ((ButtonState.Pressed == Mouse.GetState().LeftButton) && myBall.RectObject.Intersects(new Rectangle(ms.X, ms.Y, 0, 0)))
{
    myBall.RectObject = new Rectangle(ms.X - myBall.RectObject.Width / 2, ms.Y - myBall.RectObject.Height / 2, myBall.RectObject.Width, myBall.RectObject.Height);
}

我建議這樣處理:

如果鼠標左鍵單擊球(在OP中使用if語句),則將球標記為已拖動(對象上的簡單“布爾拖動;”)

如果無論何時何地都沒有左鍵單擊鼠標,請將球標記為未拖動。

如果正在拖動球,請跳至鼠標位置(在OP中if塊內使用代碼)

(所有功能都已在使用中)

編輯:這是一些示例代碼,以防我沒有清楚解釋

MouseState ms = Mouse.GetState();
 if ((ButtonState.Pressed == Mouse.GetState().LeftButton))
{
    if (myBall.RectObject.Intersects(new Rectangle(ms.X, ms.Y, 0, 0)))
    {
        myball.dragged = true;
    }
}
else
{
     myball.dragged = false;
}
if (myball.dragged)
{
    myBall.RectObject = new Rectangle(ms.X - myBall.RectObject.Width / 2, ms.Y - myBall.RectObject.Height / 2, myBall.RectObject.Width, myBall.RectObject.Height);
}

暫無
暫無

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

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