Простая анимация в киве - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу сделать себе простой класс анимации для kivy. Приведенный ниже код должен анимировать строку между [x1, y1] и [x2, y2].

from kivy.clock import Clock
from kivy.graphics import Color, Line

class Animation():
    def __init__(self, canvas):
        self.canvas  = canvas

    def line(self, x1, y1, x2, y2):
        with self.canvas:
            Color(0.2, 1, 1, 1)
            l = Line(points=[x1, y1], width=5)
            x_i = 0
            y_i = 0
            x_pos = list(range(x1, x2))
            y_pos = list(range(y1, y2))
            while x_i < len(x_pos) and y_i < len(y_pos):
                l.points += [x_pos[x_i], y_pos[y_i]]
                x_i += 1; y_i += 1

Когда я использую этот класс в простом скрипте с использованием kivy, эта строка появляется сразу после создания окна без анимации , Поэтому я хочу поместить время в этот while l oop, но time.sleep() не поддерживается kivy. Что я могу использовать вместо этого?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 26 апреля 2020

time.sleep () не поддерживается kivy

Это неправильно, time.sleep работает отлично, он просто не делает то, что вы хотите.

Вместо этого используйте Clock.schedule_interval, чтобы запланировать функцию, которая обновляет точки линии.

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