キーボードでパドルを操作する方法を尋ねているようです。私はあなたのコンピュータで実行されている最終的なピンポンコードを持っていると仮定します(そうでなければ、this sectionの最後にそれらを見つけることができます)。
1 - main.py
では、Windowクラスをインポートします。
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
ほら!左パドルの場合はw
とs
、右パドルの場合はup
とdown
を押してください。
ああ、当分の間はうまくいくようですが、各クラスに独自のキーチェックが必要な場合はどうすればいいですか?各クラスで_on_keyboard_down関数を使うだけでいいですか?または、キーボードを何度も初期化する必要がありますか? – Alex
@Alex、それは別の質問です。コメントを使用する代わりに、新しい質問をしてください。 –
必要なすべてのウィジェットで_keyboard.bind()を使用する必要があります。 – Tshirtman