正在加载 .png 文件以在 Python Arcade 中用作精灵

Loading .png file for use as a sprite in Python Arcade

我正在尝试在 Python Arcade 中创建一个 Player class,其中我使用一个矩形的 .png 图像来创建一个 sprite,用户可以移动它来击球。但是,每当我 运行 程序时,我都会收到一个 "FileNotFoundError"。文件名为 Red_Rectangle.png,目前位于我的桌面上。以下是我正在使用的代码的摘录。在包含 "Red_Rectangle.png".

的行中触发错误
def MyGame(arcade.Window):

    def __init__(self, width, height):
        super().__init__(width, height)
        self.player_list = None
        self.player_sprite = None
        self.score = 0

        arcade.set_background_color(arcade.color.BLACK)

    def setup(self):
        self.player_list = arcade.SpriteList()

        self.score = 0
        self.player_sprite = Player("Red_Rectangle.png", SPRITE_SCALING)
        self.player_sprite.center_x = 50
        self.player_sprite.center_y = 50
        self.player_list.append(self.player_sprite)

根据您提供的信息,似乎找不到文件,因为它不在工作目录中。

如果要从桌面加载图像文件,需要指定桌面路径:

import os

...

self.player_sprite = Player(os.path.expanduser("~/Desktop/Red_Rectangle.png"), SPRITE_SCALING)

或者将图像文件移动到您的工作目录。

这是因为如果你做一个 os.listdir 它不会 return 图像在那里,当 Player 方法想要 'E:/somedir/Red_Rectangle.png' 因为文件不存在于当前目录。

使用 os.path.join 将目录添加到您的文件名前:

import os
path = r'E:/somedir'
def MyGame(arcade.Window):

    def __init__(self, width, height):
        super().__init__(width, height)
        self.player_list = None
        self.player_sprite = None
        self.score =0
        arcade.set_background_color (arcade.color.BLACK)

    def setup(self):
        self.player_list = arcade.SpriteList()
        self.score = 0
        self.player_sprite = Player(os.path.join(path, "Red_Rectangle.png"), SPRITE_SCALING)
        self.player_sprite.center_x = 50
        self.player_sprite.center_y = 50
        self.player_list.append (self.player_sprite)

或者直接将图像文件放在工作目录中。