Как я могу импортировать изображения и назначать им разные имена с помощью определенной функции в Pygame - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я пытаюсь создать игру против человечества в Python с использованием Pygame, и я создал файлы .jpg для всех карт, которые я сейчас пытаюсь импортировать. Я хотел бы создать функцию для импорта изображений, которую затем смогу l oop, чтобы быстро импортировать все изображения, но я не нашел способа заставить это работать. На мой взгляд, это будет go примерно так:

def img_import(name, filename):
    name = pygame.image.load(filename)

, но я знаю, что это не сработает, и я не могу найти способ сделать это.

Большое спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Вы можете использовать словарь:

images = {}
def img_import(name, filename):
    images[name] = pygame.image.load(filename)

Вы также можете использовать список и где-нибудь написать, какой индекс относится к какому изображению:

images = []
index = 0
names = {}
def img_import(name, filename):
    global index
    images.append(pygame.image.load(filename))
    names[name] = index
    index += 1

Лучший способ (ИМХО ) ниже

Но если вам нужны все имена и сделать их также более читабельными, проще скопировать / вставить

= pygame.image.load (имя файла)

для каждого имени.

0 голосов
/ 30 апреля 2020

Есть несколько способов, которыми эта задача может быть выполнена. самый простой и, возможно, лучший способ - сохранить словарь с именем и поверхностью указанного изображения. это может быть реализовано так:

def img_import(name, filename):
    cards[name] = pygame.image.load(filename)

file_names = [] # fill this list with the names of all of the files
names = [] # fill with the card names
cards = {}
for card in range(file_names):
    img_import(names[card], file_names[card]

это создаст словарь для сопоставления каждого имени с поверхностью изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...