使用此函数,您可以获得游戏手柄"十字键"的当前值。返回的十字键值是不同方向的位掩码,其中:
请注意,这两个值可以组合在一起例如,十字键值 3 表示检查正确 (1 和 2 的总和)。您也可以使用位运算符 | 将不同方向的值组合在一起,得到相同的结果,例如 0b0001|0b0010。值为 0 表示未设置方向。
注意 只有设置了最多 2 位的值才能返回(例如,值 7 永远不会返回,因为不可能同时按上(1)、右(2)和下(4))。
注意 此函数还返回支持十字键模拟输入的游戏手柄的位掩码。
gamepad_hat_value(device, hatindex);
参数 | 类型 | 描述 |
---|---|---|
device | Real | 要检查哪个游戏手柄设备 “插槽”。 |
hatindex | Real | 要检查哪个 (或哪些) 游戏手柄十字键 (值从 0 到 gamepad_hat_count(device) - 1) |
Real (hat value as a bitmask)
var _dir = gamepad_hat_value(global.PadIndex, 0);
switch (_dir)
{
case 1: y -= 3; break;
case 2: x += 3; break;
case 3: y -= 3; x += 3; break;
case 4: x -= 3; break;
case 6: y += 3; x += 3; break;
case 8: y += 3; break;
case 9: y -= 3; x -= 3; break;
case 12: y += 3; x -= 3; break;
}
上面的代码将游戏手柄设备插槽 global.PadIndex 上索引为 0 的十字键的状态存储在本地变量 _dir 中,然后检查返回的十字键值,并采取相应的操作。