为了账号安全,请及时绑定邮箱和手机立即绑定

精灵的照片没有导入,这个错误让我很困惑

精灵的照片没有导入,这个错误让我很困惑

catspeake 2023-03-01 15:52:49
所以,我无法识别错误是什么以及如何解决它。这是我的代码:import pygamepygame.init()win = pygame.display.set_mode((500,480))pygame.display.set_caption("First Game")walkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]walkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]bg = pygame.image.load('bg.jpg')char = pygame.image.load('standing.png')x = 50y = 400width = 40height = 60vel = 5clock = pygame.time.Clock()isJump = FalsejumpCount = 10left = Falseright = FalsewalkCount = 0def redrawGameWindow():    global walkCount        win.blit(bg, (0,0))      if walkCount + 1 >= 27:        walkCount = 0            if left:          win.blit(walkLeft[walkCount//3], (x,y))        walkCount += 1                              elif right:        win.blit(walkRight[walkCount//3], (x,y))        walkCount += 1    else:        win.blit(char, (x, y))        walkCount = 0            pygame.display.update()     run = Truewhile run:    clock.tick(27)    for event in pygame.event.get():        if event.type == pygame.QUIT:            run = False    keys = pygame.key.get_pressed()        if keys[pygame.K_LEFT] and x > vel:         x -= vel        left = True        right = False    elif keys[pygame.K_RIGHT] and x < 500 - vel - width:          x += vel        left = False        right = True        此代码应该导入多个图像。角色也应该移动,但移动很好。问题在于导入图像。背景也有同样的问题。压痕也很好。我不知道如何解决这个错误。错误如下:我检查了文件名称是否有问题,但我找不到其中的错误!请在这件事上给予我帮助。
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

据我了解,您的游戏在桌面上的er.py文件夹内运行GROOT!。为了让程序访问图像,它需要知道它们在哪里。一种方便的方法(而不是指定长路径)是将运行程序的位置(我假设是文件夹GROOT!。因此,无需修改代码,您需要做的就是将所有图像复制到文件夹中GROOT!,所以只要你在同一个文件夹中运行程序(也就是说,你执行python er.py,这意味着GROOT!将是你的工作目录)。更有组织的方法是resources在里面创建一个文件夹,比如。GROOT!然后,而不是写pygame.image.load('R1.png'),你会写pygame.image.load('resources\\R1.png')(假设是 Windows 平台)。



查看完整回答
反对 回复 2023-03-01
?
交互式爱情

TA贡献1712条经验 获得超3个赞

我建议更改应用程序的工作目录。如果文件位于与 python 文件相同的目录中,则获取文件的目录并设置工作目录:


import os


sourceFileDir = os.path.dirname(os.path.abspath(__file__))

os.chdir(sourceFileDir)

如果图像包含在子目录中(例如iamges),则加入文件路径和目录路径:


import os


sourceFileDir = os.path.dirname(os.path.abspath(__file__))

imagePath = os.path.join(sourceFileDir, "images") 

os.chdir(imagePath)


查看完整回答
反对 回复 2023-03-01
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信