2013-01-13 35 views
4

我目前正在開發一個Windows 8遊戲,使用C++和純XAML(不支持DirectX)。在某些時候,當觸摸輸入發生時(例如點擊),我開始注意到滯後現象。鼠標點擊(或其他鼠標事件)不會造成同樣的滯後問題。我也注意到手指越多,發生滯後就越多。如何解決Windows 8遊戲的觸摸輸入滯後?

此問題似乎僅限於XAML應用程序,無論是C++還是C#。我嘗試使用示例Direct3D項目,一切似乎都很好。

我創建洗涮C++ XAML應用幾乎沒有什麼不同之處在於有一個故事板進行動畫它頁面各處,然後試圖通過設置IsRightTapEnabled/IsHoldingEnabled/IsDoubleTapEnabled/ManipulationMode/IsTapEnabled /禁用對根控制所有輸入1個橢圓控制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上的觸摸一樣,吃的東西比平常吃的多。但我無法弄清楚如何防止這種情況。我也找不到任何其他關於這個問題的博客文章。現在,我跑出去的線索:(

這個問題的任何建議將是非常讚賞的!

+1

你能分享你的樣品嗎?只要把它放在http://SkyDrive.com。 –

回答

3

我已經經歷了一個非常類似的錯誤我的DirectX的C++應用程序中(使用簡單的XAML頁)和跟蹤,下降到視覺反饋的問題,當觸摸發生時顯示

與你的程序,鼠標輸入不影響性能在所有

我把它通過禁用視覺觸摸反饋解決:

你必須獲取當前視圖的PointerVisualizationSettings,並將 ContactFeedbackEnabled屬性設置爲false。

這樣做可以消除任何觸碰時的性能下降。也許你只是想嘗試一下。

+0

謝謝蒂姆!這確實爲我解決了這個問題。儘管4-5個手指觸摸屏幕時我仍然看到一點滯後。但現在應該足夠好了:) –