[英]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.