如何在Kivy中从一组小部件动态创建纹理?

2 投票
1 回答
598 浏览
提问于 2025-04-18 14:57

我有一个方形的布局,里面有很多组小部件。每组小部件都是一个空的部件,背景是五颜六色的(我用基本图形画的),上面还有一个或多个标签,所以每组至少有两个小部件。我让每组独立动画(就像2048游戏那样,如果你知道的话)。现在,我每一帧都得清空画布,然后重新绘制背景。对于4×4的组来说还可以,但如果是7×7或者更多,就会卡得很厉害。所以,看起来如果能把每组合成一个纹理,只动画这个纹理会更好(因为我在销毁之前不会改变它的内容)。我该怎么做?这样做可能吗?还有比我的想法更好的办法吗?

1 个回答

1

我不太明白你问题的很多部分,但你真正想做的是存储你的图形指令,并改变它们的位置,而不是每一帧都删除再重新创建。这种方法会快很多,而且是更新图形的正确方式。

举个例子:

with self.canvas:
    rect = Rectangle(pos=(0, 0), size=(10, 10))

rect.pos = (50, 50)

这样做可以非常高效地改变矩形的位置,而不是去删除它。

撰写回答