【发布时间】:2017-09-30 09:35:22
【问题描述】:
使用 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)
【问题讨论】: