Преобразовывать переменную string в имя файла в python

Согласно выбору, который делает пользователь, хранятся данные в array, они вместе с join, чтобы это преобразовывать в имя, которое совпадает с именем одного из доступных файлов, и после я хочу, чтобы он появился:

if x > 400 and x < 535 and y > 100 and y < 209:
 seleccion[1] = "V"
 imgActual = mostrar.join(seleccion)
 ventana.blit(imgActual,(100,100))

proble состоит в том, что, когда он делает blit, выходит эта ошибка: "ventana.blit (imgActual, (100,100)) TypeError: argument 1 must be pygame. Surface, not str"

1
задан 09.08.2019, 23:22
1 ответ

Ошибка показывает, что estÃ: происходя:

ventana.blit (imgActual, (100,100)) ErrorDeTipo: аргумент 1 должно быть pygame.Surface, не str

А именно, blit нуждается в том, чтобы получить инстанцию pygame.Surface и его estÃ: s перемещая простую цепь текста, из-за многого, что это был маршрут vÃ: lida в изображение. Если твое изображение ees файл к диску, ты должен загружать ее сначала pygame.image.load, что произведи одну Surface, которая, если ты можешь происходить с blit:

import pygame

if 400 < x < 535 and 100 < y < 209:
    seleccion[1] = "V"
    nombre_img_actual = mostrar.join(seleccion)
    img_actual = pygame.image.load(nombre_img_actual)
    ventana.blit(img_actual, (100, 100))

Имей в виду, что читать файл с диска и загружать изображение в памяти имеет важную цену. Если ты будешь показывать изображения, неоднократно deber¦-схвати загружать их в памяти с начала, хранить surfaces в словаре с именем как ключ например (например) и ограничиваться тем, чтобы нарисовать ее, когда в нем будут нуждаться получая Вашу ссылку словаря.

2
ответ дан 01.12.2019, 22:19

Теги

Похожие вопросы