【问题标题】:Simple animation in kivykivy中的简单动画
【发布时间】:2020-04-26 12:09:08
【问题描述】:

我想让自己成为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 循环中放一个时间睡眠,但是 kivy 不支持time.sleep()。我可以用什么代替?

感谢您的帮助。

【问题讨论】:

    标签: python animation kivy


    【解决方案1】:

    kivy 不支持 time.sleep()

    这是错误的,time.sleep 工作正常,只是没有做你想做的事。

    改为使用Clock.schedule_interval 来安排更新线点的函数。

    【讨论】:

    • 非常感谢!我会试试的。
    猜你喜欢
    • 2015-08-16
    • 2015-03-04
    • 2014-02-15
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多