首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pygame按钮按下无响应

pygame按钮按下无响应
EN

Stack Overflow用户
提问于 2020-09-02 04:56:56
回答 1查看 32关注 0票数 1

我正在开发一个按空格键的游戏,但是很多时候,空格键并没有被注册。我有一个main函数,我运行了一个while循环,在循环结束时,我有如下代码:

代码语言:javascript
运行
复制
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
            (do this)
    if event.type == pygame.QUIT:
        pygame.quit()
        quit()
        break

    else:
        pass

(在此之前,我有几百行代码)

但我发现很多时候,当我按空格键的时候什么也没有发生,在游戏对空格键做出反应之前,需要进行大量的尝试(通常是7-10次)。我试着在pygame.display.update之后删除time.sleep(0.05),这对我有一点帮助。我也尝试过让这个for循环更频繁地通过我的while循环运行,但在游戏对按键做出响应之前,仍然需要多次尝试。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-09-02 05:08:40

...我还尝试让这个for循环更频繁地通过我的while循环运行……

不,不要那样做。pygame.event.get()从队列中删除所有挂起的事件。如果您有多个事件循环,并且多次调用pygame.event.get(),则只有一个循环会接收事件,所有其他循环都会错过这些事件。

每帧检索一次事件列表。然后,您可以多次查看该列表:

代码语言:javascript
运行
复制
# application loop
while run:

    # get the events
    events = pygame.event.get()

    # handel QUIT event
    for event in events:
        if evnet.type == pygame.QUIT:
            run = false

    # [...]

    # handle some events
    for event in events:
        # [...]

    # [...]

    # handle some other events
    for event in events:
        # [...]

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

https://stackoverflow.com/questions/63695342

复制
相关文章

相似问题

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