首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制pygam键的按下次数

限制pygam键的按下次数
EN

Stack Overflow用户
提问于 2020-07-13 18:10:12
回答 1查看 72关注 0票数 1

我正在用pygame做一个简单的骰子游戏,我试着只允许空格键被按下最多5次,直到游戏结束并显示分数。这是我的代码片段:

代码语言:javascript
复制
...

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

但是,这仍然允许空格键被按下任意次数,并且无论何时按下,骰子仍将滚动。如何确保在空格键被按下五次后,再次按下它不会使骰子再次开始滚动,而是可以开始打印分数等?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-13 18:22:49

你需要某种计数器或标志来知道什么时候停止掷骰子,或者一般情况下触发或停止一些动作。类似这样的东西是有效的:

代码语言:javascript
复制
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,你也可以做一个单独的函数,用于计数。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62873627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档