1
我有,我認爲是不正確發送的消息WM_KEYUP產生的問題。我相信,當你移動你的角色時,Minecraft會發生同樣的問題,並且輸入會「卡住」。按下按鍵後,按鍵的動作繼續,直到再次按下該按鍵時纔會停止。我聽說它可能是Windows和鍵盤之間的問題,但我不完全確定。另外,大多數其他主流遊戲都沒有這個問題,所以必須有一個正確的方法來做到這一點。這是我的windows程序代碼如下所示:由於卡住鍵盤輸入WM_KEYUP
case WM_KEYDOWN:
for (list<KeyInput>::iterator t = key_inputs.begin(); t != key_inputs.end(); ++t)
(*t).PushKeyDown(ConvertKeyCode(wparam));
return 0;
case WM_KEYUP:
for (list<KeyInput>::iterator t = key_inputs.begin(); t != key_inputs.end(); ++t)
(*t).PushKeyUp(ConvertKeyCode(wparam));
return 0;
每個KeyInput對象都有被充滿鍵輸入和鍵盤輸入請求被清空的隊列。此代碼適用於多線程遊戲,並且此技術可確保在任何線程上都不會輸入任何輸入。我在KeyInput對象中使用互斥。
我得到這個問題比我的世界更在我的比賽,我不知道爲什麼。當我做更簡單的非多線程代碼時,我也知道了。我不知道如何解決這個問題。
我明白任何幫助或建議,任何人所提供的。
那麼,你在關注WM_ACTIVATEAPP嗎? – 2012-02-14 00:19:46