【发布时间】:2020-12-01 15:09:49
【问题描述】:
我创建了一个Frogger 游戏原型,我希望不允许同时按下两个键来移动。目前在我的事件函数中,我有以下内容:
for event in pygame.event.get():
# check for closing window
if event.type == pygame.QUIT:
if self.playing:
self.playing = False
self.running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.player.speedx = -48
if event.key == pygame.K_RIGHT:
self.player.speedx = 48
if event.key == pygame.K_UP:
self.player.speedy = -48
if event.key == pygame.K_DOWN:
self.player.speedy = 48
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
self.player.speedx = 0
self.player.speedy = 0
if event.key == pygame.K_RIGHT:
self.player.speedx = 0
self.player.speedy = 0
if event.key == pygame.K_UP:
self.player.speedx = 0
self.player.speedy = 0
if event.key == pygame.K_DOWN:
self.player.speedx = 0
self.player.speedy = 0
self.player.rect.x += self.player.speedx
self.player.rect.y += self.player.speedy
这允许用户向左、向右、向上和向下移动。虽然我不希望用户能够同时按下两个键,例如:左、上或右、上,但它运行正常。也想排除其他方向,例如:左,下或右,下。基本上我希望用户一次只能向一个方向旅行。另外,有没有在按键之间设置时间限制?例如,在 1000 毫秒过去之前,您不能再次按下某个键。
【问题讨论】: