python-3.x - 为什么我的 pygame 窗口会立即关闭?
问题描述
我在 Ubuntu 上,我想将 PyGame 用于初学者的项目。但是当我为窗口运行程序时,它只会短暂打开然后关闭。我该如何解决?
import pygame
pygame.init()
window = pygame.display.set_mode((700,700))
pygame.display.set_caption("First Game")
解决方案
您的 PyGame 程序至少需要为事件循环提供服务。该程序正在打开窗口,但随后什么也不做,所以它再次关闭。
尝试这样的事情:
import pygame
WINDOW_WIDTH = 700
WINDOW_HEIGHT = 700
SKY_BLUE = (161, 255, 254)
### Open the PyGame Wdinow
pygame.init()
window = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ) )
pygame.display.set_caption("First Game")
### make a clock for later.
clock = pygame.time.Clock()
### Main Loop
done = False
while not done:
# Handle Window Events, etc.
for event in pygame.event.get():
if ( event.type == pygame.QUIT ):
done = True
# Handle Movement keys
keys = pygame.key.get_pressed()
if ( keys[pygame.K_UP] ):
print("up")
elif ( keys[pygame.K_DOWN] ):
print("down")
elif ( keys[pygame.K_LEFT] ):
print("left")
elif ( keys[pygame.K_RIGHT] ):
print("right")
# Update the window
window.fill( SKY_BLUE )
# Flush all updates out to the window
pygame.display.flip()
# Clamp frame-rate to 60 FPS
clock.tick_busy_loop(60)
pygame.quit()
这将打开一个最小窗口,处理窗口关闭事件,将背景涂成蓝色。它将注册箭头键的按键,但除此之外几乎没有。
推荐阅读
- javascript - 异步函数乱序执行
- python - Music21:根据频道号去除打击乐
- openssl - 使用 openssl 将 ssl 证书从 pfx 转换为 peem 的问题
- postgresql - 使用flyway迁移脚本时如何从文件中填写表格
- c# - 在 VueJS 中下载空的 pdf
- python - Plotly 渲染输出需要很长时间
- postgresql - 在 Amazon RDS 数据库上恢复 PostgreSQL 快照会丢失架构和数据
- django - Django 图像已上传到服务器,但在显示 500 错误后未将图像信息保存到数据库
- reactjs - 如何在反应中使用道具将数据获取到父组件?
- ubuntu - 为什么我的 laravel 8 应用程序没有在新的 Kubuntu 20 上显示混合成功/错误通知?