python - pygame KEYUP 只注册 KEYDOWN
问题描述
当我按下空格键时,“向上”和“向下”同时打印,但是当我释放时,什么也没有发生。
while True:
pygame.display.set_mode((600,600))
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
print('down')
if event.type == pygame.KEYUP:
if event.key == pygame.K_SPACE:
print('up')
if event.type == pygame.QUIT:
pygame.quit()
exit()
解决方案
您正在display
为游戏的每一帧创建一个新的。您只需要在游戏循环之外创建一次显示。它也应该分配给一个变量,例如,如果您想向它绘制(blit)项目,您将需要它。
display = pygame.display.set_mode((600,600))
# Game loop
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# ...
推荐阅读
- opc - 无法将大量数据写入kepware
- asp.net - 我可以将自动查询与 asp.net web api 一起使用吗?
- python-3.x - 使用 python 运行时,Flask 调试模式会给出“OSError: [Errno 8] Exec format error”
- node.js - “对象”类型不存在属性“成功”
- git - 如何同步/镜像 SourceForge 中的“文件”存储库和“git”存储库?
- android-studio - Gradle 分布不存在
- javascript - 如何在 VPN 中找到主机名的 IP 地址 - AngularJS
- tensorflow - 如何修复错误“tensorflow.python.framework.errors_impl.InvalidArgumentError:分配需要两个张量的形状匹配。”
- css - 如何更改 mat-button-toggle 的边框半径
- vb.net - 阻止用户为所有文本框输入字母