如何解决Windows 8游戏的触摸输入延迟?

前端之家收集整理的这篇文章主要介绍了如何解决Windows 8游戏的触摸输入延迟?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在使用带有纯XAML(没有DirectX)的C开发 Windows 8游戏.在某些时候,我开始注意到触摸输入发生时的延迟(例如Tap.)鼠标单击(或其他鼠标事件)不会导致相同的滞后问题.我也注意到触摸手指越多,发生的滞后就越多.

此问题似乎仅适用于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-lag/).不知何故,他们已经设法修复它.

我相信必须有办法解决这个问题(因为Halfbrick的某些人已经这样做过了.)这几乎就像Windows 8上的触摸消耗的cpu比平常多.但我无法弄清楚如何防止这种情况.我也找不到任何关于这个问题的博客文章.现在我用尽了线索:(

对此问题的任何建议将非常感谢!

解决方法

我在directX C App中遇到了一个非常类似的错误(使用简单的XAML-Page)并将问题跟踪到触摸发生时显示的视觉反馈.

与您的程序一样,鼠标输入根本不会影响性能.

我通过禁用视觉触摸反馈解决了这个问题:

您必须获取当前视图的PointerVisualizationSettings并设置
ContactFeedbackEnabled属性为false.

这样做可以消除触摸时的任何性能下降.也许你只是想试一试.

猜你在找的Windows相关文章