clockを使用するために pygame について十分に理解していることを願っています。
(簡単にするために、必要な時間間隔は 1 秒とします)
簡単な解決策は、単純なカウンターと pygame クロックを使用して、毎秒入力のみをチェックすることです。
最初に、メイン ループの外でクロックとカウンターを開始します。また、ブール変数を追加して、キーがこの秒内に押されたかどうかを判断します。
FRAMERATE = 30 #(The framerate used in this example is 30 FPS)
clock = pygame.time.Clock()
counter = 0
not_pressed = True
次に、メインループ内で最初に行うことは、カウンターを増やしてから、クロックを刻むことです。
while argument:
counter+=1
clock.tick(FRAMERATE)
if
次に、ボタンがこの秒に押されたかどうかを確認するステートメントであるコードを取得しました。
if not_pressed:
if(pressed_keys[K_y]):
not_pressed=False
base += 10
#Rest of code:
if(pressed_keys[K_up]):
最後に、メイン ループの最後に、ブール値not_pressed
を毎秒 True に戻すチェッカーを追加します。
if counter == FRAMERATE:
counter=0
not_pressed=True
これにより、プログラムは 1 秒に 1 回だけユーザーからの入力を取得できるようになります。間隔を変更するには、単にif counter == FRAMERATE:
行を変更します。
if counter == FRAMERATE:
1秒になります
if counter == (FRAMERATE*2):
2秒になります
if counter == int(FRAMERATE/4):
1/4 秒になります*
*注-除算を囲むか、整数除算を使用してFRAMERATE
、数値で除算したものを整数に変換してください。int()
(FRAMERATE//4)
すべてがどのように適合するかを確認するための同様の例については、この回答を参照してください。