一千萬個為什麽

搜索

為什麽這個鍵盤輸入會凍結屏幕?

當我按下以下任意一個鍵時,我要移動的對象移動一個方格然後凍結。當我松開鑰匙時,屏幕解凍,物體移動了很多。 為什麽會這樣?我該如何解決這個問題? 我正在使用WPF:


private void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
            if (e.Key == Key.W)
            {
                playerService.move(Player.id, PlayerService.Direction.UP);
            }
            if (e.Key == Key.S)
            {
                playerService.move(Player.id, PlayerService.Direction.DOWN);
            }
            if (e.Key == Key.A)
            {
                playerService.move(Player.id, PlayerService.Direction.LEFT);
            }
            if (e.Key == Key.D)
            {
                playerService.move(Player.id, PlayerService.Direction.RIGHT);
            }
}

編輯:我正在使用以下事件進行繪制。如何控制我阻止UI線程的這個問題?


CompositionTarget.Rendering += new EventHandler(Draw);

最佳答案

這是因為你在UI線程中阻塞了。我知道這是.NET,但引用了我對Java中類似問題的另一個答案。

跳過Java KeyEvents

更新</強>

我建議調查這個項目並確定他們如何處理關鍵事件。

http://www.codeproject.com/KB/WPF/GrandPrix.aspx

這是一個使用WPF編寫的賽車遊戲。

轉載註明原文: 為什麽這個鍵盤輸入會凍結屏幕?