如何在kivy.animation中访问小部件放置属性

时间:2019-09-28 14:30:02

标签: python kivy

我想知道如果该对象与另一个对象碰撞该如何制作动画。

def on_touch_down(self, touch):
     anim = Animation(pos=(int(touch.x),int(touch.y)))
     anim.start(self.ids.play)
     if obja collide objb:
         anim.stop(self.ids.play)

1 个答案:

答案 0 :(得分:0)

您使用bind将事件绑定到方法。在您的on_touch_down方法中:

def on_touch_down(self, touch):
     anim = Animation(pos=(int(touch.x),int(touch.y)))
     anim.bind(on_progress=self.progress)
     anim.start(self.ids.play)

然后,progress方法将针对应用于动画小部件的动画的每增量进行调用:

def progress(self, anim, widget, progress):
    if widget.collide_widget(objb):
        anim.stop(widget)

很显然,objb是未定义的,但是您可以弄清楚。

您将需要考虑小部件的大小,因为(在某些情况下)大小可能并不明显,并且collide_widget方法只是比较边界框。