2

我正在尝试在 Python Arcade 中创建一个 Player 类,其中我使用矩形的 .png 图像来创建用户移动以击球的精灵。但是,每当我运行程序时,我都会收到“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)
4

2 回答 2

2

这是因为如果您执行此操作os.listdir,它将不会返回图像存在,当 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)

或者只是将图像文件放在工作目录中。

于 2018-11-08T05:30:38.047 回答
0

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

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

import os

...

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

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

于 2018-11-08T05:02:35.770 回答