pygletのドキュメントには、次のように記載されています。
The Window.on_key_press and Window.on_key_release events are fired when
any key on the keyboard is pressed or released, respectively. These events
are not affected by "key repeat" -- once a key is pressed there are no more
events for that key until it is released.
ただし、Unity のキーボード設定で「キーが押されている間、キーを押すと繰り返す」が選択されている場合、pyglet (1.2alpha1) は、キーが押されたままになると、on_key_press と on_key_release を繰り返します。
この意図しない動作は、設定を切り替える次のスクリプトでテストできます。
import pyglet
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print "key press"
@window.event
def on_key_release(symbol, modifiers):
print "key release"
pyglet.app.run()
単一のウィンドウのキーリピートを無効にする方法はありますか? 他の回避策も大歓迎です。
この設定はデフォルトでオンになっており、ゲームがオフの設定を要求するのは好ましくありません。