小甲鱼303 发表于 2024-9-4 19:31:29

求助

报错情况﹕
Traceback (most recent call last):
File "F:/我的世界13.py", line 11, in <module>
    zhujue_old = pygame.image.load("imges/zhujue.png")
FileNotFoundError: No file 'imges/zhujue.png' found in working directory 'F:\'.b

代码﹕
import pygame, sys

pygame.init()

width, height = 800, 600
window = pygame.display.set_mode((width, height))
windowrect = pygame.Rect(0, 0, width, height)
pygame.display.set_caption("跑酷")
shibai = 0
guan = 1
zhujue_old = pygame.image.load("imges/zhujue.png")
zhujue1 = pygame.transform.rotozoom(zhujue_old, 0, 0.6)
zhujue2 = pygame.transform.flip(zhujue1, True, False)
zhujue = zhujue1
zhujuew, zhujueh = zhujue.get_size()
x, y = 10, 470
xsu, ysu = 0, 0
boolwalk = False
walk = None
up = False
peng = False
zuidaguan = 10
yanjiang = [
    [],
    [],
    [, ],
    [],
    [],
    [],
    [, ],
    [],
    [],
    []
]
zhangai = [
    [, ],
    [],
    [],
    [, , , ],
    [, , , ],
    [, , , ],
    [, , , , ],
    [, , ],
    [],
    []
]
zilist = [
    "欢迎来到我的跑酷游戏~试试按住上键吧~", "小心岩浆哦~", "难度+1", "经典正F", "经典反F", "天梯~", "小心哦~", "难度很高~", "信仰之跃! 加油! ", "恭喜你, 成功通关~"
]
font = pygame.font.Font("font/1.ttf", 30)

def ifin(x, y, w, h, mx, my):
    if x <= mx <= x + w and y <= my <= y + h:
      return True
    return False

while True:
    pygame.time.Clock().tick(60)

    text = font.render("失败次数: " + str(shibai), True, (0, 0, 0))
    text2 = font.render("第 {} 关".format(guan), True, (0, 0, 0))
    text3 = font.render(zilist, True, (0, 0, 0))
    textrect = text3.get_rect()
    textrect.centerx = windowrect.centerx
    if guan == 8:
      textrect.y = 100
    else:
      textrect.y = 70
    window.fill((255, 255, 255))
    if y > height:
      shibai += 1
      x, y = 10, 470
      ysu = 0
      xsu = 0

    if boolwalk:
      if walk == pygame.K_d or walk == pygame.K_RIGHT:
            if xsu <= 8:
                xsu += 2
            zhujue = zhujue1
      if walk == pygame.K_a or walk == pygame.K_LEFT:
            if xsu >= -8:
                xsu -= 2
            zhujue = zhujue2
    xsu *= 0.9
    x += xsu
    ysu -= 1
    y -= ysu
    peng = False
    for i in zhangai:
      if i:
            wx, wy, ww, wh = i
            if ifin(wx, wy, ww, wh, x + 1, y + zhujueh) or ifin(wx, wy, ww, wh, x + zhujuew - 1, y + zhujueh) or ifin(wx, wy, ww, wh, x + int(zhujuew / 2), y + zhujueh) or \
               ifin(wx, wy, ww, wh, x + 1, y) or ifin(wx, wy, ww, wh, x + zhujuew - 1, y) or ifin(wx, wy, ww, wh, x + int(zhujuew / 2), y):
                peng = True
    if peng:
      y += ysu
      ysu = 0
      if up:
            ysu = 20

    for i in zhangai:
      if i:
            mx, my, mw, mh = i
            pygame.draw.rect(window, (0, 0, 0), (mx, my, mw, mh))
            if ifin(mx, my, mw, mh, x + zhujuew, y) or \
               ifin(mx, my, mw, mh, x, y) or \
               ifin(mx, my, mw, mh, x, y + zhujueh) or \
               ifin(mx, my, mw, mh, x + zhujuew, y + zhujueh) or \
               ifin(mx, my, mw, mh, x, y + int(zhujueh / 2)) or \
               ifin(mx, my, mw, mh, x + zhujuew, y + int(zhujueh / 2)):
                x -= xsu
                if up:
                  if xsu > 0:
                        xsu = -10
                  else:
                        xsu = 10
                  ysu = 15
                else:
                  ysu = 0

    for i in yanjiang:
      if i:
            mx, my, mw, mh = i
            pygame.draw.rect(window, (255, 0, 0), (mx, my, mw, mh))
            if ifin(mx, my, mw, mh, x + zhujuew, y) or ifin(mx, my, mw, mh, x, y) or ifin(mx, my, mw, mh, x, y + zhujueh) or ifin(mx, my, mw, mh, x + zhujuew, y + zhujueh):
                shibai += 1
                x, y = 10, 470
                ysu = 0
                xsu = 0

    if ifin(width - 5, 0, 50, height, x + zhujuew, y) and guan < zuidaguan:
      x, y = 10, 470
      guan += 1

    window.blit(zhujue, (x, y))
    window.blit(text, (10, 10))
    window.blit(text2, (10, 50))
    window.blit(text3, textrect)

    for event in pygame.event.get():
      if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

      if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                pygame.quit()
                sys.exit()

            if event.key in :
                walk = event.key
                boolwalk = True

            if event.key == pygame.K_w or event.key == pygame.K_UP:
                up = True

      if event.type == pygame.KEYUP:
            if event.key in :
                boolwalk = False

            if event.key == pygame.K_w or event.key == pygame.K_UP:
                up = False

    pygame.display.update()

FishC 发表于 2024-9-4 19:45:38

根据你的报错信息和代码,`FileNotFoundError` 是因为程序找不到路径 `imges/zhujue.png` 中的文件。以下是一些排查和解决问题的方法:

1. **检查文件路径**:
   - 确保文件 `zhujue.png` 确实存在于代码中指定的目录 `imges` 中。
   - 确认 `imges` 文件夹存在并拼写正确。注意是 `imges` 而不是 `images`。

2. **确认工作目录**:
   - 确保程序运行时的工作目录是包含 `imges` 文件夹的目录。你可以在脚本中打印 `os.getcwd()` 检查当前工作目录。

3. **路径使用建议**:
   - 使用相对路径或者确保绝对路径是正确的。
   - 如果同级目录存在,可以直接使用相对路径 `./imges/zhujue.png`。

4. **IDE设置**:
   - 如果使用某些 IDE(如 PyCharm),确保配置的工作目录正确。

5. **文件路径错误信息修正**:
   - 将 `imges/zhujue.png` 改为实际路径,如果目录名拼写错误(如少了一个字母),请更正。

通过这些步骤,你应该能够解决 `FileNotFoundError` 问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-9-4 19:47:11

      这个文件不存在
"imges/zhujue.png"
         会不会是
"images/zhujue.png"

kevin_001 发表于 2024-9-21 19:58:39

jackz007 发表于 2024-9-4 19:47
这个文件不存在

         会不会是

同意jackz007的观点
@小甲鱼303
方便的话去看看这个网址:https://fishc.com.cn/forum.phpmod=viewthread&tid=230459&highlight=%C5%DC%BF%E1

ydwb 发表于 2024-9-24 14:38:36

找不到这个图片,可用现有的别的图片代替,放在工作目录下,如:zhujue_old = pygame.image.load("ball.png")

Stubborn 发表于 2024-9-24 15:38:41

建议你使用代码,获取到改文件的绝对路径,不要用相对路径

小甲鱼303 发表于 2024-12-3 20:35:49

jackz007 发表于 2024-9-4 19:47
这个文件不存在

         会不会是

IU
页: [1]
查看完整版本: 求助