ColorCycle accepts start color

This commit is contained in:
tneish 2023-12-16 11:15:27 +01:00
parent 0f24be5dad
commit cce709470f

View file

@ -38,12 +38,13 @@ class ColorCycle(Animation):
:param float speed: Animation speed in seconds, e.g. ``0.1``.
:param colors: A list of colors to cycle through in ``(r, g, b)`` tuple, or ``0x000000`` hex
format. Defaults to a rainbow color cycle.
:param start_color: An index (from 0) for which color to start from. Default 0 (first color given).
"""
def __init__(self, pixel_object, speed, colors=RAINBOW, name=None):
def __init__(self, pixel_object, speed, colors=RAINBOW, start_color=0, name=None):
self.colors = colors
super().__init__(pixel_object, speed, colors[0], name=name)
self._generator = self._color_generator()
super().__init__(pixel_object, speed, colors[start_color], name=name)
self._generator = self._color_generator(start_color)
next(self._generator)
on_cycle_complete_supported = True
@ -52,8 +53,8 @@ class ColorCycle(Animation):
self.pixel_object.fill(self.color)
next(self._generator)
def _color_generator(self):
index = 0
def _color_generator(self, start_color):
index = start_color
while True:
self._color = self.colors[index]
yield