Ogre鍵盤控制失效問題

2021-04-23 06:38:52 字數 937 閱讀 2131

上個週末還沒問題的**,周一來了編譯發現鍵盤控制出了問題,方向鍵按下沒有反應,只有長時間按下的時候鏡頭偶爾會移動一下,也就是要n幀才能響應到一次鍵盤操作。

what's wrong? 誰動了我的**?

f5,除錯起來,發現鍵盤訊息相應沒有任何問題,每次都能捕獲到,而偏移量mtranslatevector的值也確實有變化,但是到了movecamera的時候mtranslatevector就變為零了!那問題出在哪呢?

靜下來仔細回想下,期間我的確沒有更改過**,那問題出在哪呢?繼續除錯,發現在ogre 的 exampleframelistener.h 檔案的framestarted函式裡面有這樣一句

//check if one of the devices is not buffered

if( !mmouse->buffered() || !mkeyboard->buffered() || !buffj )

而且每次都會執行到這個賦值語句,是這條語句將之前的按鍵響應賦值清零了,這樣再進入到movecam函式的時候,速度為0,自然鏡頭就不會移動了。注釋掉這一句,編譯,載入場景,鏡頭移動正常,問題暫時解決。

但是?the devices is not buffered ?我使用的是緩衝輸入,而且按鍵一直被按下,居然在程式中被判斷成為not buffered,肯定是某個地方出了問題。

既然軟體沒問題,會不會是硬體上的改動導致的?我再回想,週末的時候為了玩街機,裝了個遊戲手柄,會不會和這個有關係呢?

立馬動手,拔下手柄,取消掉剛才的注釋,編譯執行。ok!一切正常!

為了更精確的找到問題原因,我把手柄拿到另一台機器上裝好,然後再跑程式,發現一切正常。

對比下兩台機器,發現唯一不同的就是,第一台出問題的機器,鍵盤滑鼠都是usb介面的,而手柄正好也是。

好了,問題到此,大致可歸結為,當系統使用多個usb輸入裝置時,會對ois的緩衝輸入的緩衝判斷造成影響,導致一些邏輯上的錯誤。

MacBook鍵盤鎖定 按鍵失效問題

相應 重啟 的號召,我通過滑鼠控制macbook重新啟動。但發現問題仍然存在。其一 鍵盤短路 or 鍵盤壞掉了。解決方法 拿去修吧!因為我電腦重啟的時候需要輸入登入密碼,在這個時候,我測試了鍵盤上的大多數按鍵,都有反應,能進行正常輸入。所以我斷定我的鍵盤肯定沒有壞,只是被鎖定住了。於是接著往下看。其...

ActiveX鍵盤失效

有時候在ie中執行activex控制項,但是有些版本回退鍵會失效,導致文字框之類的內容無法刪除的情況,給使用者帶來的體驗感極差。這裡通過訊息鉤子的方法在vc6以及vs其他版本中解決了該問題。如果是在vc6中需要在stdafx.h最開頭加入以下 這是因為win98不能這樣做,但是現在開發的程式基本都不...

OGRE手動控制骨骼動畫

在ogre中,動畫主要有骨骼動畫,變形動畫,姿態動畫。在我們使用骨骼動畫的時候,通常是在maya 3dmax等動畫軟體中做的動畫,讓其存入.skeleton檔案中,然後在程式中匯入這段動畫。我們還可以手動控制每段骨骼的動作 範例 用ogre的嚮導程式生成乙個sample 1 首先,新增全域性變數 b...