首页 > 解决方案 > pygame.error:文件不是运行 Mac os Monteray 的 m1 Mac 上的 Windows BMP 文件

问题描述

我环顾四周,但没有找到任何可行的解决方案。

我只是在使用教程学习 pygame:https ://www.youtube.com/watch?v=jO6qQDNa2UY&list=WL&index=44&t=1379s

但是当我尝试链接图像时出现错误:pygame.error: File is not a Windows BMP file。

除了重新安装pygame(上一期)或重新安装python之外,我已经尝试了所有方法。

这是我的代码

import pygame
import os

pygame.init()
WIDTH, HEIGHT = 900, 500
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("First Game")

WHITE = (255,255,255)
RED = (255,0,0)

FPS = 60

YELLOW_SPACESHIP_IMAGE = pygame.image.load(
    os.path.join('Assets', 'spaceship_yellow.png')).convert()
RED_SPACESHIP_IMAGE = pygame.image.load(
    os.path.join('Assets', 'spaceship_red.png')).convert()

def draw_window():
    WIN.fill((RED))
    WIN.blit(YELLOW_SPACESHIP_IMAGE, (300,100))
    pygame.display.update()

def main():
    clock = pygame.time.Clock()
    run = True
    while run:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        
        draw_window()
    pygame.QUIT()

if __name__ == "__main__":
    main()

标签: pythonmacospygamemacos-monterey

解决方案


您尝试加载spaceship_yellow.png并且spaceship_red.png从扩展名判断哪个PNG不是BMPs,您的错误

pygame.error: File is not a Windows BMP file

建议 pygame 期待BMP文件。pygame.image 文档

image 模块是 pygame 的必需依赖项,但它只可选地支持任何扩展文件格式。默认情况下,它只能加载未压缩的 BMP 图像。当构建完整的图像支持时,该 pygame.image.load()函数可以支持以下格式。

然后枚举格式,显然您没有完整的图像支持,我认为最简单的解决方案是将PNGs 转换为未压缩的BMP图像格式。


推荐阅读