首页 > 解决方案 > 是否可以将动画.gif 与 kivy 画布对象一起使用?

问题描述

我尝试对乒乓球使用animated.gif 或animated.zip 但它不起作用,是否可以将animated.gif(或animated.zip)用于画布对象?

 https://kivy.org/doc/stable/tutorials/pong.html

<PongBall>:
    size : 50,50
    canvas:
        Ellipse:
            pos : self.pos
            size: self.size
            source: 'animated.gif'
            #source: 'animated.zip'

标签: python-3.xanimationcanvaskivyanimated-gif

解决方案


我认为您不能直接使用图像序列。但是您可以使用纹理来更新您的画布。

class PongGame(Widget):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        with self.canvas:
            ellipse = Ellipse(size=self.size, pos=self.pos)
        img = Image(source='animated.zip', anim_delay=1/20)
        img.bind(texture=lambda *args: self.update_texture(ellipse, img))

    def update_texture(self, ellipse, img):
        ellipse.texture = img.texture

推荐阅读