出力の一時停止と再開
Posted feedbacks - Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | require 'Win32API'
GetKeyState = Win32API.new('user32', 'GetKeyState', 'I', 'I')
pause = false
Thread.start {
loop {
print 'a' unless pause
sleep 1
}
}
loop {
key_state = {:p => (GetKeyState.call(?P)[7] == 1),
:q => (GetKeyState.call(?Q)[7] == 1)
}
exit if key_state[:q]
if key_state[:p]
pause = !pause
sleep 0.3
else
sleep 0.1
end
}
|
pキーの長押し時、動作に不具合があったので修正しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | require 'Win32API'
GetKeyState = Win32API.new('user32', 'GetKeyState', 'I', 'I')
pause = false
can_toggle_pause = true
Thread.start {
loop {
unless pause
print 'a'
sleep 1
else
sleep 0.1
end
}
}
loop {
key_state = {:p => (GetKeyState.call(?P)[7] == 1),
:q => (GetKeyState.call(?Q)[7] == 1)
}
exit if key_state[:q]
if key_state[:p]
if can_toggle_pause
pause = !pause
can_toggle_pause = false
end
else
can_toggle_pause = true
end
sleep 0.05
}
|



nobsun
#6346()
Rating3/3=1.00
起動すると、標準出力に1秒毎に'a'の1文字を出力し続けるプログラムで、 以下の条件を満たすものを「どう書く?」
[ reply ]