Pygame でのユーザー入力の取得: キーボード入力
Pygame では、キーボードでゲーム オブジェクトを制御するには、キー イベントでの入力を取得する必要があります。 pygame.key.get_pressed() は現在押されているキーに関する情報を提供しますが、キーが押し下げられたときのオブジェクトの急速な移動に関する問題が発生する可能性があります。
高速船の移動の解決
船がキーを押すたびに 1 回だけ移動するようにするには、pygame.event.get() を使用して pygame.KEYDOWN イベントを検出します。このイベントは、キーが最初に押されたときに発生し、より正確な制御を可能にします。
events = pygame.event.get() for event in events: if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: # Handle left arrow key press if event.key == pygame.K_RIGHT: # Handle right arrow key press
連続移動
キーを押している間の連続移動を許可するには、動きを制限するためにカウンターまたは最大フレームレートを実装します。たとえば、カウンターを使用します:
move_ticker = 0 keys = pygame.key.get_pressed() if keys[K_LEFT]: if move_ticker == 0: move_ticker = 10 # Set move limit to 10 frames # Move left if keys[K_RIGHT]: if move_ticker == 0: move_ticker = 10 # Set move limit to 10 frames # Move right
ゲーム ループで、必要に応じてカウンターを更新します:
if move_ticker > 0: move_ticker -= 1
このソリューションでは、動きを 10 フレームごとに 1 回に制限し、過度に速い動きを防ぎます。 .
以上が過度に速い動きを避けるために、Pygame でキーボード入力を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。