Pygame图像不再加载

时间:2015-08-06 13:12:30

标签: python image python-3.x pygame

自从我开始这个以来,我在.py文件而不是子文件夹的同一个文件夹中有char.png并且它会加载我的图像但是当我添加了移动的能力时左右,现在我收到了错误。

Traceback (most recent call last):File "C:\Users\Shiloh\Google Drive\Python\Platformer\main.py", line 25, in <module>
    characterSprite = pygame.image.load('char.png')
pygame.error: Couldn't open char.png

我已经回去了,删除了我添加的所有内容,因为它正在工作,它仍然不再加载图像。我没有移动任何文件,我只是简单地更新了它们。我已经搜索并尝试了之前在这里给出的答案,但它们似乎都没有在我的作品中发挥作用。提前谢谢。

import pygame
pygame.init()

#Window Resolution
display_width = 800
display_height = 450
gameResolution = pygame.display.set_mode( (display_width,display_height) )

#Window Title
pygame.display.set_caption('Bubble Bobble')

#Colors
colorRed = (255,0,0)
colorOrange = (255,160,96)
colorYellow = (255,216,0)
colorGreen = (0,255,0)
colorBlue = (0,0,255)
colorPurple = (235,193,255)
colorBlack = (0,0,0)
colorWhite = (255,255,255)

gameClock = pygame.time.Clock()
characterSprite = pygame.image.load('char.png')
def sprite(x,y):
        gameResolution.blit(characterSprite,(x,y))
x = (display_width * 0.5)
y = (display_height * 0.5)
x_change = 0


crashed = False
while not crashed:
        for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        crashed = True
                        if event.type == pygame.KEYDOWN:
                                if event.key == pygame.K_LEFT:
                                        x_change = -5
                                elif event.key == pygame.K_RIGHT:
                                        x_change = 5
                        if event.type == pygame.KEYUP:
                                if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                                        x_change = 0
        x += x_change
                #print(event) #Prints to console
        gameResolution.fill(colorWhite)
        sprite(x,y)
        pygame.display.update() #You can also use pygame.display.flip()
        gameClock.tick(60) #Sets the value of the FPS

pygame.quit()
quit()

1 个答案:

答案 0 :(得分:0)

所以我认为使用python 3.x,对于__file__,你必须用引号括起来。所以

mydir = os.path.dirname('__file__')
pygame.image.load(os.path.join(mydir, 'char.png'))

应解决问题。

如果没有,则选择的回复here会提到权限问题。如果以root身份运行程序,它将从主目录开始。哪个可能是问题,并且使用绝对路径时没有问题。所以,如果你以root身份运行它...停止它。

您可以使用此

判断您当前是否在错误的当前工作目录中

print (os.getcwd())

或当前文件

print (os.path.dirname(os.path.realpath('__file__')))