自从我开始这个以来,我在.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()
答案 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__')))