You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python PyGame中Card1.png图片加载缩放后仍无法显示问题求助

问题原因分析
  • 核心问题是屏幕更新顺序错误:你在background()函数中提前调用了pygame.display.flip()将背景绘制结果更新到屏幕,之后执行的卡片绘制screen.blit(Card1Img, (0,0))只写入了后台缓冲区,没有被同步到实际显示的画面中,因此看不到图片。
  • 次要优化点:不需要在每次事件循环中重复调用title()设置窗口标题,放在循环外执行一次即可;背景绘制的矩形尺寸无需设置为2000*3000,和窗口尺寸一致即可。
  • 额外注意:代码缺失pygame.init()初始化操作,部分运行环境下会导致资源加载异常。
修正后的完整代码
import pygame
import sys

def title(title):
    pygame.display.set_caption(title)

def background(Color1, Color2, Color3):
    pygame.draw.rect(screen, (Color1, Color2, Color3), pygame.Rect(0, 0, 1280, 720))

# 初始化pygame
pygame.init()
screen = pygame.display.set_mode((1280, 720))
# 窗口标题仅需设置一次
title("Card-Jitsu")
# 加载并缩放卡片图片
Card1Img = pygame.image.load('Card1.png')
Card1Img = pygame.transform.scale(Card1Img, (100,100))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)
    # 先执行所有绘制逻辑
    background(255, 255, 255)
    screen.blit(Card1Img, (0, 0))
    # 所有绘制完成后统一更新屏幕
    pygame.display.flip()

如果修改后仍加载失败,可以检查Card1.png是否和当前运行的Python文件在同一个文件夹下,也可以替换为文件的绝对路径确认位置正确性。

内容的提问来源于stack exchange,提问作者Simpfey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:06:00