python - Pygame 图标和标题不更新。问题是什么?
问题描述
在我的代码中,标题和图标更新不起作用。我有 pygame 1.9.6、python 3.8 和 png 文件是 32.32。我的代码是:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600)
pygame.display.set_caption("Space Invader")
icon = pygame.image.load('ufo.png')
pygame.display.set_icon(icon)
playerImg = pygame.image.load('player.png')
playerX = 370
playerY = 480
def player():
screen.blit(playerImg,(playerX,playerY))
running = True
while running:
colour = (255, 0, 0)
screen.fill(colour)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.update()
解决方案
缺少一个)
:
screen = pygame.display.set_mode((800, 600)
screen = pygame.display.set_mode((800, 600))
您必须在主应用程序循环中而不是在循环之后更新显示。更正缩进:
while running:
# [...]
#-->| INDENTATION
pygame.display.update()
[...] 某些系统不允许窗口图标在显示后更改。可以在
pygame.display.set_mode()
设置显示模式之前调用此函数创建图标。
在之前设置图标screen = pygame.display.set_mode((800, 600))
:
pygame.display.set_caption("Space Invader")
icon = pygame.image.load('ufo.png')
pygame.display.set_icon(icon)
screen = pygame.display.set_mode((800, 600))
工作代码:
import pygame
pygame.init()
pygame.display.set_caption("Space Invader")
icon = pygame.image.load('ufo.png')
pygame.display.set_icon(icon)
screen = pygame.display.set_mode((800, 600))
playerImg = pygame.image.load('player.png')
playerX = 370
playerY = 480
def player():
screen.blit(playerImg,(playerX,playerY))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
colour = (255, 0, 0)
screen.fill(colour)
player()
pygame.display.update()
推荐阅读
- python - 如何将变量放入 geolocator.reverse() 函数?
- java - 如何在 HTTP 请求中发送 java 对象?
- mongodb - Go 在使用 docker 时无法连接到 Mongo 容器
- python - 如何合并字典列表
- python - Seaborn图中x轴标签的间距
- python - discord.py 如何组织帮助命令
- javascript - React-Leaflet TypeError:无法读取 null 的属性“lat”
- exception - 为什么我在看起来像完美对齐的访问(cortex-m7)上得到精确的总线故障异常(PRECISERR)
- javascript - 禁用嵌套 HTML 中的所有链接
- php - 计算具有相同索引或不同索引的多维数组的总和