Как получить доступ к свойствам размещения виджетов в kivy.animation - PullRequest
0 голосов
/ 28 сентября 2019

Я хотел бы знать, как для анимации, если объект сталкивается с другим объектом.

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 голосов
/ 29 сентября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...