Я сделал игру, где у меня было много файлов .png, которые я хотел оживить во взрыве. Я положил .png файлы в файл .zip и сделал следующее:
explosion = Explosion(
size_hint=(None, None),
source='explosion.zip',
anim_delay=0,
allow_stretch=True,
keep_ratio=False)
где Explosion
был такой:
class Explosion(Image):
pass
Хотя все эти различные ключевые аргументы не обязательно отношение к вам, принять к сведению source
, и, возможно, также, anim_delay
args. Для меня, сделав его нулевым, он сделал так, чтобы была плавная анимация, но с gif она может отличаться.
Из документов Image:
anim_delay
Задержка анимации, если изображение секвенировали (например, анимированного GIF). Если для параметра anim_delay установлено значение -1, анимация будет остановлена.
anim_delay - это числовое свойство и по умолчанию - 0,25 (4 FPS).
Это было время, так как я сделал игру, но вот фрагмент из ранее в коде:
def __init__(self, **kw):
super(myGame, self).__init__(**kw)
# pre-load zipped pngs using keep_data to avoid delays later
load_zipped_png_files = Image(
source = 'explosion.zip',
anim_delay = 0,
allow_stretch = True,
keep_ratio = False,
keep_data = True)
Я считаю, что это имеет эффект сохранения архивного .png файлов в памяти тем самым избегая задержек с их загрузкой позже. На самом деле это не может иметь желаемого эффекта, я не помню, чтобы быть честным, однако я помню, что думал, что это так! Я рекомендую проверить это самостоятельно, если вы идете по этому маршруту. И, пожалуйста, дайте мне знать, если это сработает.
Отправьте свой код, чтобы мы могли понять, что вы пытаетесь сделать. –
В дополнение к комментарию @ Paul, вы можете прочитать [ask]. – boardrider