0

Pygame では、各矢印キーを使用して各方向に画像を 10% ずつ変換しようとしています。現在、私が使用しているコードは、キーが押されている限り画像を移動します。キーがまだ押されているかどうかに関係なく、一度だけ移動する必要があります。

if event.type == KEYDOWN:
    if (event.key == K_RIGHT):
        DISPLAYSURF.fill((255,255,255)) #Clears the screen
        translation_x(100)
        draw(1)
    if (event.key == K_LEFT):
        DISPLAYSURF.fill((255,255,255)) #Clears the screen
        translation_x(-100)
        draw(2)
    if (event.key == K_UP):
        DISPLAYSURF.fill((255,255,255)) #Clears the screen
        translation_y(100)
        draw(3)
    if (event.key == K_DOWN):
        DISPLAYSURF.fill((255,255,255)) #Clears the screen
        translation_y(-100)
        draw(4)

time.sleep を使用する以外に、これを実装する簡単な方法はありますか

4

1 に答える 1

2

を使用pygame.key.set_repeat()して、まだダウンしているキーからの繰り返しイベントを無効にすることができます。

ただし、デフォルトでは無効にする必要があります。

キーボードリピートが有効になっている場合、キーを押したままにすると、複数の pygame.KEYDOWN イベントが生成されます。遅延は、最初に繰り返される pygame.KEYDOWN が送信されるまでのミリ秒数です。その後、間隔ミリ秒ごとに別の pygame.KEYDOWN が送信されます。引数が渡されない場合、キーの繰り返しは無効になります。

pygame が初期化されると、キーの繰り返しが無効になります

于 2013-10-21T23:40:32.107 に答える