总目录
- 1 问题
- 2 分析
- 3 物理布局
- 3.1 键盘上究竟有多少键
- 3.2 Windows 新三键
- 3.3 其它造型的 ANSI / ISO 键盘
- 3.4 韩国键盘
- 3.5 日本键盘
- 3.6 巴西键盘
- 3.7 不同键数键盘的兼容性问题
- 4 游戏 UI 设计
- 4.1 目标
- 4.2 实现
- 5 总结
1 问题
经常看笔者直播的朋友,可能会注意到,有的时候笔者玩《守望先锋》时,屏幕上显示终极技能的按键不是通常的 Q,而是 A。就像这样:
有时,屏幕上显示终极技能的按键不是通常的 Q,而是 A
但是实际上,这个时候笔者还是按键盘上的 WASD 来移动,按键盘上的 Q 来释放终极技能,一切都很正常。所以,这个 A 到底是什么意思呢?
2 分析
笔者在《RPi 2B 实战 PCD8544×黑白屏 (5)》里提到过,树莓派作为英国电子产品,其默认键盘布局为英国键盘,而非美国键盘。对于习惯美国键盘的我们来说,直接用英国键盘布局操作会有诸多不便。因为虽然二者字母的位置是一样的,但是很多符号的位置都不一样,影响命令行操作。
这个区别有多大呢?咱们先上一张 Windows 下美国键盘布局的标准图复习一下:
Windows 美国键盘布局。黑色表示功能键,灰色表示普通键
然后,咱们再上一张 Windows 下英国键盘布局的标准图看一下:
Windows 英国键盘布局。黑色表示功能键,灰色表示普通键,黄色表示 Alternative Graph
我们可以看到,两者相比,字母的排列是一样的。这种前六个字母为 QWERTY 的字母排列也叫 QWERTY 布局。但是符号的位置确实不太一样。尤其是 @、双引号、波浪线、井号、竖线和反斜杠的位置不一样了,这些变动会切实影响命令行操作的效率。
此外,美国键盘布局中回车键上方的「反斜杠、竖线」键在英国键盘布局不见了。同时,英国键盘布局则多出了回车键左边的「井号、波浪线」键和左 Shift 键右边的「反斜杠、竖线」键。这样的变化同时影响了回车键的形状。在 USB 标准中,这三个键分别有不同的编码,是不同的按键。
美国键盘布局有一个独占按键,英国键盘布局有两个独占按键,总体来看英国键盘多一个键
因此,美国键盘布局和英国键盘布局相对各自而言,美国键盘布局有一个独占按键,英国键盘布局有两个独占按键,总体来看,英国键盘布局多一个键。由于从硬件上发给操作系统的编码就有根本的不同,这两种键盘布局分属两个物理布局大类:ANSI 和 ISO。还有其它物理布局,暂且不展开。
除了硬件布局,键盘布局之间还有软件上的不同。例如 1 键左边、Tab 键上方那个键,虽然键盘发给操作系统的编码是一样的,但是操作系统当前键盘布局设置为美国键盘时,这个键就是「抑音符、波浪线」,设置为英国键盘时,这个键就是「抑音符、否定号、断开的竖线」键。
想到还有软件上的不同,这个问题就简单了。这个现象的本质其实是《守望先锋》在交互 UI 上,多做了一点心思。当我们当前设置的输入法为美国键盘或英国键盘等 QWERTY 布局的键盘布局时,1 键下方、Tab 键右边那个键是 Q 键,所以就显示 Q:
在美国键盘或英国键盘等 QWERTY 布局下,该按键上的字母为 Q
但是在法国以及一些以法语为官方语言的国家,其标准键盘布局不是基于 QWERTY 布局,而是基于 AZERTY 布局。例如,Windows 下的法国键盘布局是这样的:
Windows 法国键盘布局。黄色和橙色表示 Alternative Graph,橙色和红色表示 Dead Key
我们可以看到,在这个键盘上,相当于美国键盘的 WASD 的四个键是 ZQSD,而原本我们设置为释放终极技能的 Q 键,在这个键盘上写着的是 A。
知道了这些,问题也就迎刃而解了。没错,就是因为笔者在 Windows 的语言设置里添加了法国键盘布局,而游戏过程中又不小心切到了法国键盘布局导致的。笔者在 YouTube 上随便找了个法国主播,他的游戏界面里释放终极技能也是显示的 A:
法国主播 AlphaReplay 的释放终极技能按键也是 A
那么,为什么笔者会在游戏中不小心切换到法国键盘布局呢?这是因为 Windows 10 切换键盘/输入法的快捷键与游戏本身的功能键有重合,所以容易按错。为了说明系统快捷键的作用,咱们举个例子,假设系统里有:
- 英语(美国)/美国键盘
- 中文(中国)/搜狗拼音
- 中文(中国)/微软拼音
- 中文(台湾)/微软注音
- 土耳其语(土耳其)/Q-键盘
- 土耳其语(土耳其)/F-键盘
- 法语(法国)/法国键盘
- 意大利语(意大利)/意大利键盘
- 法语(加拿大)/加拿大多语种标准键盘
九种键盘和输入法,如下图:
假如系统里有这九种键盘和输入法
则 Windows 10 的三组切换键盘和输入法的快捷键的作用分别为:
Ctrl + Shift 切换同语言的不同键盘/输入法
1、Ctrl + Shift 切换同语言的不同键盘/输入法。例如,按下 Ctrl + Shift 可在同属「中文(中国)」语言的「搜狗拼音」和「微软拼音」之间切换,也可在同属「土耳其语(土耳其)」的「Q-键盘」和「F-键盘」之间切换,但不会切换到其它的「美国键盘」「法国键盘」等。
Alt + Shift 切换语言
2、Alt + Shift 切换语言。不管当前键盘是「搜狗拼音」还是「微软拼音」,按下 Alt + Shift 都会切换到下一语言的首个键盘/输入法「微软注音」,再按会切换到「Q-键盘」,再按会切换到「法国键盘」。从「美国键盘」开始按 Alt + Shift,则会切换到「搜狗拼音」。
Win + Space 和 Win + Shift + Space 循环切换全部键盘/输入法
3、Win + Space 和 Win + Shift + Space 分别按顺序正向和逆向循环切换全部键盘/输入法。例如,若当前语言为「美国键盘」,则按下 Win + Space 会切换到「搜狗拼音」,再按会切换到「微软拼音」,再按会切换到「微软注音」,以此类推。从「美国键盘」开始按 Win + Shift + Space 则会切换到「加拿大多语种标准键盘」,再按会切换到「意大利键盘」,以此类推。
至于游戏中为什么会误按,那就更好理解了。《守望先锋》默认键位中,Shift 是用来释放技能的,Ctrl 是用来下蹲的,本身就都是常用按键。笔者又自行在 Alt 键上设置了切换武器(天使、托比昂等人用的)键,所以就很容易误按。切换到法国键盘,自然就显示 A 为释放终极技能的按键了。
至于标题图中以 F 为释放终极技能的按键,那是因为切换到了土耳其语(土耳其)的 F-键盘:
Windows 土耳其 F-键盘。黄色和橙色表示 Alternative Graph,橙色和红色表示 Dead Key
在这种情况下,1 键下方、Tab 键右边那个键是 F 键,所以《守望先锋》会很聪明地显示 F:
在土耳其 F-键盘布局下,该按键上的字母为 F
虽然本文开头的问题得到了答案,但是我们还可以再想得远一点。
除了 ANSI 和 ISO,还有没有其它的物理键盘布局?
我们怎么区分、称呼这些物理键盘布局?
在游戏中,我们怎样实现显示正确的按键?
如果您对以上问题感兴趣,咱们接着往下看。
3 物理布局
3.1 键盘上究竟有多少键
用电脑时间比较长的老用户可能经常听到两个词,就是 101-键键盘和 102-键键盘,那这个 101-键,就是指标准的 ANSI 键盘有 101 个键:
ANSI 101 键盘:打字机区 58 键、功能键区 13 键、指令导航区 13 键,小键盘区 17 键
而 102-键,就是指标准的 ISO 键盘有 102 个键:
ISO 102 键盘:打字机区 59 键、功能键区 13 键、指令导航区 13 键,小键盘区 17 键
可以看到,这两种键盘在物理键盘布局方面的差异都在打字机区,而功能键区、指令导航区、小键盘区完全一致。这也是笔者前文法国键盘、土耳其 F-键盘等键盘布局的图都只展示打字机区的按键的原因。
虽然绝大部分物理键盘布局的差异都只发生在打字机区,但是,也有巴西 ABNT 和 ABNT2 这样在小键盘区也动了手脚的布局。遇到这种情况时,笔者会特别说明。
3.2 Windows 新三键
不过,实际上,上面这种 101-键、102-键键盘已经很少见了。因为 Windows 95 面世时,微软就开始推广自己的新标准。与传统的 PC 键盘相比,新的 Windows 键盘多了三个按键(下称 Windows 新三键):左 Win 键、右 Win 键和 Menu 键。这三颗按键挤在键盘两侧的 Ctrl 键和 Alt 键之间。
由于后来鼠标和触控操作的飞速发展远远超出微软的预料,所以 Menu 键现在基本上没用了,但 Win 键依然活跃。在所有地区给 Windows 电脑用的键盘上,你都能看到以各种方式挤在键盘上的 Win 键,以及可能看得到也可能看不到的 Menu 键。
所以,上文大部分的键盘布局配图也都是包含 Windows 新三键的。咱们平常使用的带有 Windows 新三键的 ANSI 104 美国键盘,其标准形象是这样的:
ANSI 104 键盘:打字机区 61 键、功能键区 13 键、指令导航区 13 键,小键盘区 17 键
可以看到,在标准尺寸的 ANSI 104 键盘中,原有的 Ctrl 键、Alt 键以及 Space 键的尺寸都做了压缩,才放下了 Windows 新三键。同理,ISO 102 键盘加入新三键之后,就有了 ISO 105 键盘:
ISO 105 键盘:打字机区 62 键、功能键区 13 键、指令导航区 13 键,小键盘区 17 键
与 ANSI 104 类似,标准尺寸的 ISO 105 键盘也在压缩原有的 Ctrl 键、Alt 键以及 Space 键尺寸的前提下,才放得下 Windows 新三键。
总之,Windows 新三键的出现,使得现在标准尺寸的 ANSI 和 ISO 的 Windows 键盘分别是 104 个键和 105 个键。这使得 101-键键盘和 102-键键盘也被称为 101/104-键键盘和 102/105-键键盘。但同时,由于习惯的力量,很多地方我们仍然能看到 101-键键盘或者 102-键键盘这样不精确的说法。
在 Windows 10 微软韩语输入法中,物理键盘布局的设置选项有 101 和 103/106 两大类
不过,将 101/104-键键盘单单称作 101-键键盘还算是安全的,反而如果单单称作 104-键键盘是不妥当的。巴西 ABNT 和 ABNT2 物理键盘布局的按键就是 104/107 个,因此如果将 101/104-键键盘单单称作 104-键键盘,是有可能和巴西键盘布局混淆的。这里的 103/106-键键盘,是指韩国键盘。
细心的读者可能要问了,为什么 Windows 10 微软韩语输入法没有 102-键的选项呢?我如果用着 102-键键盘,应该怎么选呢?这就涉及到一个 101-键键盘与 102-键键盘之间的兼容性问题。
关于韩国键盘、巴西键盘以及不同键数键盘之间的兼容性问题,我们下文再详谈。
学习了!~
原来键盘都这么有学问