我目前正在使用带有纯 XAML(无 DirectX)的 C++ 为 Windows 8 开发游戏。在某些时候,我开始注意到触摸输入发生时的延迟(例如点击。)鼠标单击(或其他鼠标事件)不会导致同样的滞后问题。我还注意到触摸手指越多,延迟就越多。
此问题似乎仅特定于 XAML 应用程序,无论是 C++ 还是 C#。我尝试了示例 Direct3D 项目,一切似乎都很好。
我创建了一个干净的 C++ XAML 应用程序,除了 1 个 Ellipse 控件之外几乎什么都没有,该控件有一个 Storyboard 以在页面周围对其进行动画处理,然后尝试通过将 IsRightTapEnabled/IsHoldingEnabled/IsDoubleTapEnabled/ManipulationMode/IsTapEnabled/IsHitTestVisible 设置为 False 来禁用根控件上的所有输入。但是在触发触摸输入时仍然会出现延迟。
因此,从这一点来看,我确信在基本层面上肯定有问题。该应用程序几乎什么都不做,并且仍然存在滞后。
Windows 8 上的 Hydro Thunder 和 Jetpack Joyride 等游戏也存在触摸输入延迟问题(请参阅http://wrtapps.com/2012/12/windows-rt-games-suffering-from-touch-screen-input-滞后/)。不知何故,他们已经设法修复它。
我相信一定有办法解决这个问题(Halfbrick 的人已经这样做了。)这几乎就像 Windows 8 上的触摸比平时消耗更多的 CPU。但我不知道如何防止这种情况。我也找不到任何其他关于此问题的博客文章。现在我没有线索了:(
对此问题的任何建议将不胜感激!