如何在Kivy中从一组小部件动态创建纹理?
我有一个方形的布局,里面有很多组小部件。每组小部件都是一个空的部件,背景是五颜六色的(我用基本图形画的),上面还有一个或多个标签,所以每组至少有两个小部件。我让每组独立动画(就像2048游戏那样,如果你知道的话)。现在,我每一帧都得清空画布,然后重新绘制背景。对于4×4的组来说还可以,但如果是7×7或者更多,就会卡得很厉害。所以,看起来如果能把每组合成一个纹理,只动画这个纹理会更好(因为我在销毁之前不会改变它的内容)。我该怎么做?这样做可能吗?还有比我的想法更好的办法吗?
1 个回答
1
我不太明白你问题的很多部分,但你真正想做的是存储你的图形指令,并改变它们的位置,而不是每一帧都删除再重新创建。这种方法会快很多,而且是更新图形的正确方式。
举个例子:
with self.canvas:
rect = Rectangle(pos=(0, 0), size=(10, 10))
rect.pos = (50, 50)
这样做可以非常高效地改变矩形的位置,而不是去删除它。