我正在用pygame做一个简单的骰子游戏,我试着只允许空格键被按下最多5次,直到游戏结束并显示分数。这是我的代码片段:
...
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
for i in range (5): #number of wanted rounds
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
dice1.roll = True #rolls dice
dice2.roll = True #rolls dice
player_one.new_score(dice1_set) #calculates P1 new score
player_two.new_score(dice2_set) #calculates P2 new score但是,这仍然允许空格键被按下任意次数,并且无论何时按下,骰子仍将滚动。如何确保在空格键被按下五次后,再次按下它不会使骰子再次开始滚动,而是可以开始打印分数等?
谢谢!
发布于 2020-07-13 18:22:49
你需要某种计数器或标志来知道什么时候停止掷骰子,或者一般情况下触发或停止一些动作。类似这样的东西是有效的:
if event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE and SPACE_COUNTER < 5:
SPACE_COUNTER +=1
else:
print("PUT YOUR CODE FOR SCORE RESET")
if event.key == pg.K_RETURN and SPACE_COUNTER >= 5:
SPACE_COUNTER = 0我假设所有这些都发生在main_loop内部,所以SPACE_COUNTER是全局变量,它在循环外部被定义为SPACE_COUNTER = 0。最后一行是用来重新启动变量的,当你按回车键的时候,计数器已经是5了,它会把它重置为0,你也可以做一个单独的函数,用于计数。希望这能有所帮助。
https://stackoverflow.com/questions/62873627
复制相似问题