正在加载 .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)
或者直接将图像文件放在工作目录中。
我正在尝试在 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)
或者直接将图像文件放在工作目录中。