python - 如何修复窗口中的 Python Pygame 图像错误

标签 python pygame

我试图通过 pygame 将 png 文件加载到 python 中,但它不起作用 这是我的代码:

import pygame
from pygame.locals import *
pygame.init()
display_width = 800
display_height = 600
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption("Game")
clock = pygame.time.Clock()
carImage = pygame.image.load('you.png')
def car(x,y):
    gameDisplay.blit(carImage,(x,y))
    x = (display_width * 0.45)
    y = (display_height * 0.8)
    crashed = False
    while not crashed:
       for event in pygame.event.get():
           if event.type == pygame.QUIT:
               crashed = True
       gameDisplay.fill(white)
       car(x,y)
       pygame.display.update()
       clock.tick(24)
    pygame.quit()
    quit()

它说:

Traceback (most recent call last):

File "C:/Users/Dawn/PycharmProjects/snakegame/snake.py", line 13, in carImage = pygame.image.load('you.png')

pygame.error: Couldn't open you.png

请帮助我,我不知道为什么这个一直显示。

我现在使用的是 Windows 10,并且执行了 C:\.\...\you.png 方法 但还是不行。

最佳答案

基于this answer ,建议使用相对路径。这样做总是更好,因为您不必关心“\”、“/”或操作系统(有人已经为我们做到了:v)。

问题似乎就是这样,因为下面的代码对我来说效果很好。我们认为您有一个 images_store 文件夹来将您的图像存储在与您的 .py 文件相同的父目录中(当然,您可以以任何您想要的方式更改它)。

import pygame
import os.path as osp
from pygame.locals import *


pygame.init()

display_width, display_height = 800, 600
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)

current_path = osp.dirname(__file__)                          # Where your .py file is located
image_path = osp.join(current_path, 'images_store')           # The image folder path
carImage = pygame.image.load(osp.join(image_path, 'you.png'))


gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption("Game")
clock = pygame.time.Clock()

def car(x,y):
   gameDisplay.blit(carImage, (x, y))

x = (display_width * 0.45)
y = (display_height * 0.8)
crashed = False
while not crashed:
   for event in pygame.event.get():
       if event.type == pygame.QUIT:
           crashed = True
   gameDisplay.fill(white)
   car(x,y)
   pygame.display.update()
   clock.tick(24)
pygame.quit()
quit()

p.s.1 - 查看有关os.path的更多信息here .

p.s.2 - 我使用的是 MacOS。

关于python - 如何修复窗口中的 Python Pygame 图像错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53292682/

相关文章:

python - 如何帮助 tqdm 计算出自定义迭代器中的总数

python - 如何在 pygame 中逐个字母地制作文本?

python - 如何限制 Racket 运动?

python - 从另一个文件导入列表

python - Numpy 数组对所有元素进行排序

python - 我在 python 中遇到了与元组相关的问题

python - 将 @property 与另一个装饰器结合起来

Python/Pygame - 如何将不同的透明度传输到不可见的表面上

python - 如何在圆周上找到点

python - 如何为 python 包模块启用自动完成 (IntelliSense)?