gpt4 book ai didi

python - Pygame 没有正确处理键盘或鼠标事件

转载 作者:太空狗 更新时间:2023-10-30 01:38:02 25 4
gpt4 key购买 nike

我最近在我的 Mac 上重新安装了 pygame。我安装了 pygame 1.9.2a0。我的 Windows 上有相同的版本,之前在这台 Mac 上也有相同的版本。但是我在这个新安装中得到了奇怪的结果。我注意到所有绘图命令都可以正常工作,但出于某种原因,单击 pygame 窗口却没有。窗口在后台打开,不正常但问题不大。但是随后所有按键都被重定向到终端/IDE(应用程序从中运行)。我在下面附上了一个我正在测试的非常简单的程序。该程序只是寻找转义键。请注意,这在我的 Windows 机器上工作得很好。

TL;DR:当窗口被选中时,为什么按键发送到终端而不是 pygame 窗口的事件循环。

我对这个问题感到困惑主要是因为我以前没有遇到过这样的问题。我也不确定如何调试这个问题。如果需要其他信息,我很乐意提供。

import pygame
import sys
from pygame.locals import *

pygame.init()
size = width, height = 100, 100
screen = pygame.display.set_mode(size)

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
pygame.event.post(pygame.event.Event(QUIT))

screen.fill((30, 30, 30))
pygame.display.flip()

对于好奇的人:

  • 苹果操作系统 10.10.1
  • Python 3.4.2(通过 pyenv)
  • Pygame:1.9.2a0

更新:

我有一个理论,在一个较新的提交中出现了某种问题。所以我决定拉下他们的存储库并恢复到以前的提交。这看起来很有希望,特别是因为他们在 2015 年 1 月初“大爆炸”合并了 8 个左右的拉取请求。所以我在这次大规模合并发生之前将存储库拉回提交,问题完全相同。我决定对其他几个提交(合并位置之前和之后)执行此操作,但仍然没有更改。有什么建议吗?

最佳答案

看起来您正在尝试制作一个关机键,而不必使用角落里的 X。这就是我在需要时所做的修复工作。

key = pygame.key.get_pressed()
running = 1

while running:
for event in pygame.event.get():

if event.type == QUIT:
pygame.quit()
running = 0
elif key[pygame.K_ESCAPE]:
pygame.quit()
running = 0

希望对您有所帮助。顺便说一句,转义键并不总是有效,所以可以将它设置为不同的键绑定(bind)。对于鼠标,您需要检查鼠标的位置。

def run():
pos = pygame.mouse.get_pos()

#check_events
check_events(pos)

关于python - Pygame 没有正确处理键盘或鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com