为实现这个判断需要用到Win32API,方法如下:
getAsyncKeyState = Win32API.new('user32.dll', 'GetAsyncKeyState', 'i', 'i')
if (1...0xFF).any? {|i| getAsyncKeyState.call(i) != 0}
print("Any Key DOWN !")
end
如果您有一定的脚本基础可直接修改这段代码到您需要的位置,下面提供一个定义在Kernel模块内的通用判断方法。
module Kernel
GetAsyncKeyState = Win32API.new('user32.dll', 'GetAsyncKeyState', 'i', 'i')
def any_key?;return (1...0xFF).any? {|i| GetAsyncKeyState.call(i) != 0};end
end
在需要判断的地方使用if any_key?或者条件分歧-脚本-any_key?即可判断玩家按下任意键,需要注意的是,这个判断包含了对鼠标按键的判断。