ホームページ >バックエンド開発 >Python チュートリアル >過度に速い動きを避けるために、Pygame でキーボード入力を処理するにはどうすればよいですか?

過度に速い動きを避けるために、Pygame でキーボード入力を処理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 14:34:17728ブラウズ

How Can I Handle Keyboard Input in Pygame to Avoid Excessively Fast Movement?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。