问题描述
这是代码 ->
import pygame
import os
pygame.init()
width,height = (500,700)
bg=os.path.join('C:\\Users\\USER\\Desktop\\Python\\picture match','background.jpg')
WIN = pygame.display.set_mode((width,height))
def draw():
WIN.blit(bg,(0,0))
def main():
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
draw()
main()
我不知道为什么会出现错误,我以前的项目一直是这样工作的。
解决方法
bg
是一个字符串,包含文件名,但不是 pygame.Surface
对象。使用 pygame.image.load
从文件源加载图像:
bbg_filename = os.path.join('C:\\Users\\USER\\Desktop\\Python\\picture match','background.jpg')
bg = pygame.image.load(bg_filename)
将背景缩放到窗口大小:
bg = pygame.transform.scale(bg,(width,height)).convert()
在绘制场景后调用 pygame.display.update()
或 pygame.display.flip()
来更新显示:
draw()
pygame.display.flip()
完整示例:
import pygame
import os
pygame.init()
width,height = (500,700)
WIN = pygame.display.set_mode((width,height))
bg_filename = os.path.join('C:\\Users\\USER\\Desktop\\Python\\picture match','background.jpg')
bg = pygame.image.load(bg_filename)
bg = pygame.transform.scale(bg,height)).convert()
def draw():
WIN.blit(bg,(0,0))
def main():
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
draw()
pygame.display.flip()
main()