是否可以使用带有 kivy 画布对象的animated.gif?

问题描述

我尝试对乒乓球使用animated.gif 或animated.zip,但它不起作用, 是否可以将动画.gif(或动画.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'

解决方法

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

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