Touch Xna : x:infity y:infinity

本文关键字:infinity infity Xna Touch | 更新日期: 2023-09-27 18:37:20

这是我的代码

            TouchCollection touch = TouchPanel.GetState();
            if (touch.Count >= 1)
            {
                TouchLocation prevLocation;
                bool prevAvailable = touch[0].TryGetPreviousLocation(out prevLocation);
                System.Diagnostics.Debug.WriteLine("x:"+touch[0].Position.ToString()+"prev"+prevLocation.Position.ToString());
            } 

但是在输出窗口中,我得到了"x:无穷大,y:无穷大"。这不是一个真实的立场.任何想法请谢谢:D

Touch Xna : x:infity y:infinity

尝试了您的代码,但我在输出中没有看到"x:无限,y:无穷大"。如果prevAvailable为假(touch.State == Pressed时为假),则prevLocation由默认值 Vector2(0,0) 初始化。如果prevAvailable为真(当touch.State == Moved时),那么它会得到最后的触摸位置并且工作正常。所以这段代码没有问题。输出示例

x:{X:216 Y:363}prev{X:0 Y:0} //state == pressed
x:{X:225 Y:347}prev{X:216 Y:363}
x:{X:244 Y:321}prev{X:225 Y:347}
x:{X:272 Y:293}prev{X:244 Y:321}
x:{X:272 Y:293}prev{X:272 Y:293}
x:{X:443 Y:210}prev{X:0 Y:0} //state == pressed
x:{X:443 Y:210}prev{X:443 Y:210}
x:{X:453 Y:195}prev{X:443 Y:210}
x:{X:471 Y:176}prev{X:453 Y:195}
x:{X:506 Y:145}prev{X:471 Y:176}
x:{X:506 Y:145}prev{X:506 Y:145}