游戏是一种带有互动性的计算机模拟,因此玩家需要通过某些外部设备参与进游戏中。而为游戏而设的人体学接口设备(human interface device)种类繁多,包括摇杆、手柄、键盘、鼠标 等等,除此之外还有一些特殊的输入设备,例如方向盘、鱼竿、跳舞毯等等。

本章节主要是讲述这些设备的使用,不过教程这里暂时只介绍一些常见设备,主要是鼠标和键盘的相关介绍。

鼠标输入
大多数的鼠标至少有左键和右键。左键用来 单击、选择、拖拽 等等,右键通常会显示一个上下文相关的菜单。一般的鼠标在左键和右键之间都会有一个滚轮,并且有一些鼠标滚轮具有点击功能,可以当做鼠标的中键。
鼠标按键响应
当光标在窗口的客户区时,用户点击 鼠标 按钮,这个窗口可能会收到下面这些消息。
鼠标移动
当鼠标移动的时候,Windows 会发送 WM_MOUSEMOVE 消息。默认情况下,WM_MOUSEMOVE 会发送到光标所在的窗口,你可以覆盖这个默认逻辑,捕获鼠标窗口外的鼠标消息。
特殊鼠标动作
前面说了鼠标的点击和移动,下面讲一下鼠标的其它操作。包括鼠标的拖拽动作、鼠标指针范围的限制、鼠标的悬停以及鼠标的滚轮操作。
设置鼠标图像
光标(cursor)是用来显示你鼠标或者其它指示设备的小图像。许多应用都通过不同的光标来向用户展示程序的不同状态。虽然这不是必须的,但是它会让应用程序看起来更加友好。
键盘输入
键盘有几种不同的输入类型:字符输入,用户用来编辑文本。键盘快捷键,执行一些程序的快捷操作,例如:CTRL+O 打开文件。系统命令,执行一些系统操作,例如:ALT+TAB 选择窗口。
加速表
应用程序经常定义一些键盘快捷键,例如 CTRL+O 组合键代表文件打开命令。你可以通过捕获 WM_KEYDOWN 消息来实现快捷键的逻辑,但是更好的解决方案是使用加速表(accelerator tables),或者称为快捷键表的方式来替代。