Python pygame.error:文件不是windows.bmp文件(已查看其他类似问题,但迄今为止未成功)

Python pygame.error:文件不是windows.bmp文件(已查看其他类似问题,但迄今为止未成功),python,python-2.7,pygame,Python,Python 2.7,Pygame,我对pygame非常陌生,正在使用《用Python和pygame开始游戏开发》一书。我几乎已经输入了示例代码,并一直得到相同的结果 “pygame错误:文件不是windows.bmp文件” 并且希望能够像书中的例子那样加载jpg/png。我非常确定我在正确的目录下工作,并且我想要使用的图像与示例中的格式相同。我也在寻找解决办法,但没有一个答案对我有效。 书中的代码如下(我有python 2.7.4、Ubuntu 13.04和(我想)pygame 1.2.15): 到目前为止我的代码版本: imp

我对pygame非常陌生,正在使用《用Python和pygame开始游戏开发》一书。我几乎已经输入了示例代码,并一直得到相同的结果 “pygame错误:文件不是windows.bmp文件” 并且希望能够像书中的例子那样加载jpg/png。我非常确定我在正确的目录下工作,并且我想要使用的图像与示例中的格式相同。我也在寻找解决办法,但没有一个答案对我有效。 书中的代码如下(我有python 2.7.4、Ubuntu 13.04和(我想)pygame 1.2.15):

到目前为止我的代码版本:

import os.path
background = os.path.join('Documents/Python/Pygame','Background.jpg')
cursor_image = os.path.join('Documents/Python/Pygame','mouse.png')

import pygame
from pygame.locals import *
from sys import exit

pygame.init()

screen = pygame.display.set_mode((640, 480), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load(background).convert()
mouse_cursor = pygame.image.load(cursor_image).convert_alpha()
while True:
    for event in pygame.event.get():
            if event.type == QUIT:
                    exit()
    screen.blit(background, (0,0))
    x, y = pygame.mouse.get_pos()
    x-= mouse_cursor.get_width() / 2
    y-= mouse_cursor.get_height() / 2
    screen.blit(mouse_cursor, (x, y))
    pygame.display.update()

谢谢你的帮助:)

我几乎可以保证你走错了路。在代码中,您输入了相对路径,这意味着pygame正在工作目录(您执行代码的目录)的子文件夹中查找您的资产

下面是一个演示,演示了我认为您必须如何安排事情以及代码的位置—在本例中,您将在
/home/your_username/Documents/my_games
(或
~/Documents/my_games
)中打开一个命令提示符,然后运行
python your_games\u script.py

|---home
   |---your_username
       |---Documents
           |---some_subfolder
           |---my_games
               |---your_game_script.py
               |---Documents
                   |---Python
                       |---Pygame
                           |---Background.jpg
                           |---mouse.png
这会起作用,但我怀疑你没有这样设置你的文件夹,这就是它不起作用的原因。如果在与游戏脚本相同的文件夹中运行交互式
python
提示符,请尝试以下操作:

import os
os.path.isfile('Documents/Python/Pygame/Background.jpg') 
os.path.isfile('Documents/Python/Pygame/mouse.png') 
我怀疑这两个文件的结果都是错误的——这意味着在该子文件夹位置找不到文件。我建议您的游戏文件采用以下结构:

|---my_game
    |---your_game_script.py
    |---images
        |---Background.jpg
        |---mouse.png
然后在
your\u game\u script.py
中,您可以按以下方式加载文件:

background = 'images/Background.jpg' #relative path from current working dir
cursor_image = 'images/mouse.png'    #relative path from current working dir

import pygame
from pygame.locals import *
from sys import exit

pygame.init()

screen = pygame.display.set_mode((640, 480), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load(background).convert()
mouse_cursor = pygame.image.load(cursor_image).convert_alpha()

pygame.image.get_extended()
返回什么?这与其他问题有何不同?你尝试过哪些答案?可能是重复的啊谢谢Bartlomiej,我现在会看看这些,看看我能不能解决:)这看起来像是一个路径错误。您的目录结构是什么?您如何运行代码?代码需要从.py文件的位置开始的子目录结构。
background = 'images/Background.jpg' #relative path from current working dir
cursor_image = 'images/mouse.png'    #relative path from current working dir

import pygame
from pygame.locals import *
from sys import exit

pygame.init()

screen = pygame.display.set_mode((640, 480), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load(background).convert()
mouse_cursor = pygame.image.load(cursor_image).convert_alpha()