使用键时循环连续运行[pygame.K_SPACE] Python/Pygame



我是一名10年级的学生,使用Pygame在Python中从事一个简单的视频游戏项目。 当我按空格键时,这段代码应该执行:

if keys[pygame.K_SPACE]: 
shotflag = True
shotX = shipX+((shipwidth/2)-(shotwidth/2))  
shotY = shipY - 10

问题是...它连续执行,直到我将手指从空格键上移开。我只希望它执行一次。 有没有更好的方法可以做到这一点? 我可以使用空格键发布事件吗? 所以它只开火一次?

提前谢谢。 马修

除了Ianin Shelvington的回答之外,你应该在主游戏循环中处理事件。

更多信息在pygame文档中:这里

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
#TODO

最新更新