我想知道如果该对象与另一个对象碰撞该如何制作动画。
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)
答案 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
方法只是比较边界框。