PyGameを使用して、矢印のキーボードプレスによって制御されたグリッド内を動く移動する正方形を作成したいと思います。したがって、「上」キーを押すと正方形がセルに直接上向きに移動し、「右」キーを押すとセルが右に直接移動します。キーボード入力によるPyGameフレームレート
私のループでは、私はpygame.time.wait(x)
を使用して一時停止しますx
ミリ秒。ただし、x
の正しい値を選択することは困難です。 x
が大きすぎると(1000など)、正方形がすぐに反応せず、実際に移動するにはキーを押し続けなければなりません。しかし、x
が小さすぎると(例えば10)、キーを押すたびに正方形が複数回連続して移動します。しかし、私は正方形がすべてのキーを押すごとに一度動くようにしたい。これどうやってするの?ありがとう!
以下は私のコードの重要な部分である:
x = 100
current_pos = [0, 0]
while True:
pygame.event.pump() # process event queue
is_key_pressed = pygame.key.get_pressed()
if is_key_pressed[pygame.K_UP]:
current_pos[1] -= 1
elif is_key_pressed[pygame.K_RIGHT]:
current_pos[0] += 1
elif is_key_pressed[pygame.K_DOWN]:
current_pos[1] += 1
elif is_key_pressed[pygame.K_LEFT]:
current_pos[0] -= 1
show_map(current_pos)
pygame.time.wait(x)