web-dev-qa-db-ja.com

kivyでキーボードイベントを確認するにはどうすればよいですか?

それで、少し前に、私は自分にキビーを教え始めました。私はメインのキビーのウェブサイトから始めて、そのピンポン作成のチュートリアルを行い、最後にキー入力を試してみることにしました。 kivyでのキー入力のガイドが見つからないようです。誰かが何らかのチュートリアルを知っているか、理解しやすいコードを提供できますか?私はkivyのexamplesフォルダーにあるキーボードリスナーを確認しましたが、想定されている場合の使用方法がよくわかりません。

ご協力ありがとうございます。

22
Alex

キーボードでパドルを制御する方法を尋ねていると思います。私はあなたがあなたのコンピュータで走っている最終的なピンポンコードを持っていると思います(そうでなければ、 このセクション の終わりでそれらを見つけることができます)。

1-main.pyウィンドウクラスをインポートします。

from kivy.core.window import Window

2-PongGameクラスの先頭を再定義して、次のようにします。

class PongGame(Widget):
    ball = ObjectProperty(None)
    player1 = ObjectProperty(None)
    player2 = ObjectProperty(None)

    def __init__(self, **kwargs):
        super(PongGame, self).__init__(**kwargs)
        self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
        self._keyboard.bind(on_key_down=self._on_keyboard_down)

    def _keyboard_closed(self):
        self._keyboard.unbind(on_key_down=self._on_keyboard_down)
        self._keyboard = None

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
        if keycode[1] == 'w':
            self.player1.center_y += 10
        Elif keycode[1] == 's':
            self.player1.center_y -= 10
        Elif keycode[1] == 'up':
            self.player2.center_y += 10
        Elif keycode[1] == 'down':
            self.player2.center_y -= 10
        return True

ほら!左側のパドルにはwsを、右側のパドルにはupdownを押します。

26
toto_tico