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

所以,我无法识别错误是什么以及如何解决它。这是我的代码:


import pygame

pygame.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 = 50

y = 400

width = 40

height = 60

vel = 5


clock = pygame.time.Clock()


isJump = False

jumpCount = 10


left = False

right = False

walkCount = 0


def 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 = True


while 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

        

此代码应该导入多个图像。角色也应该移动,但移动很好。问题在于导入图像。背景也有同样的问题。压痕也很好。我不知道如何解决这个错误。错误如下:


我检查了文件名称是否有问题,但我找不到其中的错误!请在这件事上给予我帮助。


catspeake
浏览 143回答 2
2回答

繁星淼淼

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

交互式爱情

我建议更改应用程序的工作目录。如果文件位于与 python 文件相同的目录中,则获取文件的目录并设置工作目录:import ossourceFileDir = os.path.dirname(os.path.abspath(__file__))os.chdir(sourceFileDir)如果图像包含在子目录中(例如iamges),则加入文件路径和目录路径:import ossourceFileDir = os.path.dirname(os.path.abspath(__file__))imagePath = os.path.join(sourceFileDir, "images")&nbsp;os.chdir(imagePath)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python