我的pygame粘贴不出来图片?我后面也加了update啊

请问为什么我的pygame粘贴不出来图片?我后面也加了update啊
以下是main.py文件:

import pygame
from plane import *
import time

pygame.init()

width = 450
height = 500
bg = pygame.image.load("img/bg.png")

screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("飞机大战")
screen.blit(bg, (0, 0))

plane = Plane()
plane.draw(screen, 225, 500)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
    pygame.display.update()

以下是plane.py文件:

import pygame

pygame.init()

class Plane():
    def __init__(self):
        self.image = pygame.image.load("img/plane.png")

    def draw(self, screen, x, y):
        screen.blit(self.image, (x, y))

请问为什么我显示不出来plane,却显示的出来bg?

看了一下你的代码,给你几点建议,你尝试按步骤排查解决一下:
图片无法显示出来的问题可能是由于以下原因之一:

  1. 文件路径错误:请确保 bg.pngplane.png 这两个图片文件与你的 main.pyplane.py 文件在同一个目录下,并且文件名拼写和大小写正确。如果图片文件存放在不同的目录下,你需要提供正确的相对路径或绝对路径。

  2. 代码顺序问题:在你的代码中,你首先加载并绘制了背景图像(bg.png),然后创建了飞机对象(plane = Plane()),最后调用 pygame.display.update() 更新显示。这样的话,背景图像会立即显示出来,但飞机图像可能会被覆盖在背景之后。你可以尝试将飞机的绘制操作放在背景绘制之后。例如,将以下行:

screen.blit(bg, (0, 0))

移动到更新显示之前来确保飞机图像在背景之上:

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
    screen.blit(bg, (0, 0))
    plane.draw(screen, 225, 500)
    pygame.display.update()

通过调整绘制顺序,你应该能够在屏幕上同时显示背景和飞机图像。

请检查以上两个可能的问题,如果问题仍然存在,可以随时联系,再沟通排查。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7740931
  • 除此之外, 这篇博客: pygame模块中的 1. 我们在用一个模块前,都要先导入这个模块。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • import pygame          # 导入模块
    from pygame.locals import *    # 导入pygame一些常用的函数和常量