Вы используете 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
простосравнивает ограничивающие рамки.