OK, I'll try to be clearer :-)
I've discovered that the slowest thing to do in Kivy is to alter the
scene graph - to clear the canvas and issue all those instructions
that build up the scene and are compiled into the opengl instructions.
If I can retain the scene graph and only alter the properties of the
components in it then things run much faster. I'm doing this right now
with a canvas with Rectangles in it drawing textures; they form the
grid of icons in my match 3 game and as I animate them I just modify
the position of the Rectangles.
I want to add some additional effects, so my first thought was to do
the same thing again; add some additional Rectangles for the effects
(there's a limited number of them) and the modify their position /
opacity as needed. Unfortunately I can't modify the opacity; that is
defined by the preceding Color instruction in the scene graph.
It's just occurred to me that if I alter my scene graph construction to, say:
c1 = Color
r1 = Rectangle
c2 = Color
r2 = Rectangle
c3 = Color
r3 = Rectangle
c4 = Color
r4 = Rectangle
Then I can control the alpha (opacity) of each Rectangle. The problem
is that the Color instructions c2, c3 and c4 will be optimised out by
the scene graph compiler. I'm not sure what modifying the opacity will
then do. I will experiment tomorrow I suppose.
And if that doesn't work then I guess I'll just have to use full-blown
widgets for the effect images.
Richard