Pygame未加载图片

时间:2019-01-03 02:11:55

标签: python-3.x pygame

我无法显示与项目相同的源文件夹中的图像。也给我在(x,y)下的波浪线,它告诉我 “来自外部范围的阴影名称“ x”和“ y”” 它显示了每个“ x”和“ y”,因此我将& 最后我最后的quit()告诉我 “ PEP 8:文件末尾的空白行”

对于python和pygame来说是全新的

我不确定该怎么做

import pygame

pygame.init()

display_Width = 400
display_Height = 400

gameDisplay = pygame.display.set_mode((display_Height, display_Width))
pygame.display.set_caption('Shonen Run Project')

black = (0, 0, 0)
white = (255, 255, 255)

clock = pygame.time.Clock()
crashed = False
heroImg = pygame.image.load('harper.png')


def hero(x, y):
    gameDisplay.blit(heroImg, (x, y))


x = (display_Width * 0.45)
y = (display_Height * 0.8)

while not crashed:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            crashed = True

    gameDisplay.fill(white)
    hero(x,y)

    pygame.display.update()
    clock.tick(60)

pygame.quit()
quit()

1 个答案:

答案 0 :(得分:0)

我猜您使用的是IDE。代码的图像加载看起来不错,只需注意,只有当当前工作目录实际上是您的python文件所在的目录,并且图像文件位于该目录中时,它才起作用。确保这一点的简单方法是:

import os
import sys
os.chdir(sys.path[0])

其他问题只是警告。

您有两个全局变量xy,还有一个函数def hero(x, y):,它也有两个自变量xy。该警告告诉您,如果您访问x内的yhero,则实际上访问了 local xy,并且您将无法访问 global xy(它们是 shadowed )。

我建议将全局xy变量重命名为更有意义的名称,并删除hero函数,因为它几乎没有用。

PEP 8是python样式指南。您应该遵循它,因为它有助于保持代码的可读性,特别是如果您以外的其他人将要阅读您的代码时。但这当然不是法律,文件末尾缺少空白行可能不会打扰任何人……