为什么我的pygame图片没有加载?

时间:2011-03-04 01:25:44

标签: python pygame

我在网上找到了一个教程(在Youtube上),它向我展示了使用pygame创建游戏的基础知识。我发现了他所说的那种图像以及他所拥有的图像。他没有说要把它们保存到哪里,我想这可能是我的问题。在这里,这是我的程序中的一个例子以及错误显示的内容

bif="bg.jpg"
mif="images.png"

import pygame, sys
from pygame.locals import *

pygame.init()
screen=pygame.display.set_mode((420,315),0,32)

backround=pygame.image.load(bif).convert()
mouse_c=pygame.image.load(mif).convert_alpha()

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

    screen.blit(backround, (0,0))

    x,y = pygame.mouse.get_pos()
    x -= mouse_c.get_width()/2
    y -+ mouse_c.get_height()/2

    screen.blit(mouse_c, (x,y))

    pygame.display.update()

错误如下:

Traceback (most recent call last):  
File "C:/Python26/pygame.games/pygame
1", line 10, in <module>
    backround=pygame.image.load(bif).convert()
error: Couldn't open bg.jpg

请尽快回复。

5 个答案:

答案 0 :(得分:3)

根据该代码,您的图像文件需要保存在与游戏的.py文件相同的目录中。试着把它们移到那里。

作为一个完整性检查(为了确保图像将加载并且实际上是提供正确路径的问题),您可以在代码中临时指定图像的绝对路径,因此而不是

bif = "bg.jpg"

你会有

bif = "C:/My_game/images/bg.jpg"

但显然要将第二位更改为指向实际存储图像的位置。一旦你确定可以使用绝对路径加载图像,就应该使用相对路径,如果你可能有很多资产,你应该将它们与代码分开,例如将它们放在{与游戏代码位于同一文件夹中的{1}}文件夹,或类似文件夹。

assets

答案 1 :(得分:0)

在运行时使用os.getcwd()检查当前工作目录是一个好主意。找到当前工作目录后,添加相对于该路径的资产。例如,您可以将bg.jpg放在<cwd>/python/game/assets/上并输入:

bif=r"python/game/assets/bg.jpg"

答案 2 :(得分:0)

您也许可以忽略所有这些内容,或者仅阅读部分内容,具体取决于什么内容

print pygame.image.get_extended()

以有价值的方式获取输出,可能会有所帮助,具体取决于您获得的收益以及以下问题之一。

尝试使用文件将整个路径添加到目录/文件夹。如果可行,则Python不在Path上,或者您只需要找到该目录/将Python引导至该目录即可。

尝试保存,读取和/或写入文件。如果在保存时自动假定使用相同的驱动器,则可能不错,并且只需将python引导至其所在的文件夹/目录即可。如果您将.py文件保存在与图像相同的目录/文件中,则通常不会出现问题。

做一个测试,用谷歌读写文件,然后尝试创建一个简单的.txt文件。

还可以在Tkinter中使用文件保存/打开/新建对话框。查看它假定在何处保存文件或从其中打开文件。

如果Python不是您的PATH的一部分,那么会有大量的教程和几种添加方法。其中一些功能包括使用内置的本机OS GUI,命令提示符/ Bash,甚至还有使它变得更容易的工具,只是google如何将python添加到PATH。您可以执行干净的卸载,即删除和删除所有内容,然后再次安装。

拥有两个不同的驱动器会使事情变得奇怪。根据上面的测试,您应该看到Python使用的驱动器。确保将当前文件和图像保存到同一目录。

安装了多个版本的Python会使事情变得怪异。即使您卸载Python,有时也无法在Windows中卸载所有内容,特别是Windows市场上的版本可能使事情变得混乱。老实说,如果是这样的话,我只是卸载,删除并重新安装到path。

有时使用第三方IDLE实际上可以使事情变得容易得多。我认为PATH类型问题最简单的是Pycharm。如果我没记错的话,它会让您创建虚拟环境,女巫是另一种固定问题的方法(google venv)。如果所有操作失败,则说明发生了奇怪的事情,您可以始终删除和卸载并删除所有Python跟踪,然后再次安装以确保没有留下任何跟踪,并将其添加到安装路径中。

关于将文件放入Python库文件夹的答案是完全错误的。不要这样做,这与将其保存到root几乎相同。还有,如果需要整个Python库文件夹,您将如何发布任何内容,如果我当时是那个家伙,由于纯粹的尴尬,我现在将删除该注释。

我遇到了这个问题,这是从Windows Market位置下载3.x版本得到的。它以某种方式设法将Python .exe直接保存在Windows文件夹中,以及其他怪异的东西。这使它变得如此令人沮丧,并且由于安装得如此怪异而难以修复,而且我不记得我从安装程序中获得了哪个版本以及从Marketplace中获得了哪个版本。我只想避开Marketplace,就可以得到一些时髦的Windows子系统,也有“ Linux”发行版。

答案 3 :(得分:-1)

我遇到了同样的问题。试图找出相同的教程

我修复它的方式。

  1. 将图像放入C:\ Python26 \ Lib \ site-packages
  2. 这是安装pygame的地方,直到我把图像放在那里它才能工作。

    1. 在为bif和mif声明你的变量时,你应该这样写;
    2. bif =“C:/Python26/Lib/site-packages/bg.jpg”

      具有图像文件的完整位置。注意斜杠是向前转的,如“/”

      我尝试使用单反斜杠和双反斜杠,就像“\”和“\”一样,但都没有用。

      尝试所有不同的方法,并确保所有内容拼写正确,并且您的图像就在您所说的位置,并且您获得了正确的文件名(.jpg,.JPG或.jpeg)您可以只看在图像文件的属性。

答案 4 :(得分:-1)

也许您的图像太大了。首先使用其他图像处理应用程序缩小图像,然后重试。