昨天下午我照常打开使命召唤,准备打两局排位赛。这游戏我玩了一年多了,枪法谈不上多好,但起码键位操作早就刻进肌肉记忆里。可那天一进游戏就感觉不对劲,按W人物不走,按空格跳不起来,屏幕上还时不时弹出几个拼音字母。我以为是键盘坏了,拔了重新插,没用;换了个键盘,还是老样子。
后来我注意到一个细节,每次游戏中途我按Shift跑步的时候,屏幕左上角就会闪出一个输入法的小图标。那一刻我突然明白过来,这压根不是键盘的问题,是输入法在背后捣鬼。
Windows系统的输入法有个特性,当它处于中文模式的时候,会默认拦截掉一些按键组合用于拼音输入。你按一下Shift想跑步,输入法把这次按键吞掉了;你按Ctrl想下蹲,输入法可能已经把它当成了切换中英文的快捷键。更坑的是有些输入法还会在你按Alt键的时候触发候选词窗口,直接导致游戏画面卡住,视角不停飘移。
这种情况以Win10自带的微软拼音最为明显。只要游戏运行的时候系统语言栏还停留在中文模式,你所有的单个字母按键都会被输入法先行处理一遍。如果恰好卡在某个状态,游戏主程序根本接收不到键盘指令。
找到了原因,解决起来其实也就几步的事。第一个办法也是最有用的,在进游戏之前,直接按Shift键把输入法从中文切换到英文模式。这个操作只针对当前窗口生效,只要你不在游戏里点开聊天框输入中文,它就一直保持在英文状态。我有一次切完进游戏,打了一个多小时完全没有出现按键失灵的情况。

第二个办法是给游戏单独设置输入法模式。Win10系统设置里找到时间和语言,点开输入法选项,里面有一项叫兼容性设置。把“使用旧版输入法”这个开关打开,微软拼音就会退回到比较古老的版本,那个版本不会自动拦截游戏按键。这个办法适合那些老是忘记切输入法的朋友,设一次一劳永逸。
第三个办法更彻底,就是彻底禁掉输入法对游戏的干扰。如果你装了搜狗输入法或者QQ输入法,它们的设置中心里都有一个游戏优化模式。这个模式会检测到正在运行的全屏游戏,自动暂停所有输入法功能。进去游戏的时候输入法会完全让出键盘控制权,从根本上杜绝冲突的可能。
我自己试了一圈下来,最稳定的还是游戏内切换到英文模式加上输入法自身设置的双保险。有些人还习惯把默认语言改成纯英文,只保留一个中文美式键盘方案,相当于整个系统层面就少了中文输入法这层干扰。这个办法比较彻底,代价就是你在系统其他程序里打中文之前要手动切一次输入法,对大多数人来说确实不太方便。
还有个小窍门,进入使命召唤的那个加速器启动界面后先不要急着点开始游戏,确认一下右下角语言栏当前状态。如果显示的是“中”,就先切到“ENG”再进。我自己还养成了一个习惯,就是游戏加载画面的时候再按一次Shift确认状态,这样基本上不会出问题。
这次经历之后我在朋友群里提了一嘴,发现中招的不止我一个。有个朋友是玩CSGO遇到同样的情况,另外一个玩荒野行动的时候键盘也会间歇性失灵,最后找到原因都是输入法在后台偷按键。这个问题的本质就是Windows输入法对键盘事件的拦截机制太霸道,只要它处于活跃状态,它就有优先权。这些年不管是微信输入法还是讯飞输入法,都没有从根本上解决这个问题。
现在每次玩使命召唤之前我的固定动作就是先按一下Shift,再进游戏。有时候忘了切,进去之后按不了WASD,就只能ESC退回桌面重新切。幸好现在知道了原因,遇到这种情况心理不慌,还知道怎么处理。如果你也在游戏里遇到键盘打着打着突然没反应,先别急着换键盘重装驱动,看看屏幕右下角的输入法小图标,问题多半就出在那。