Merge pull request #115 from tneish/horiz_animation
ColorCycle accepts start color
This commit is contained in:
commit
35d8c011b8
1 changed files with 10 additions and 7 deletions
|
|
@ -38,12 +38,15 @@ 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).
|
||||
"""
|
||||
|
||||
def __init__(self, pixel_object, speed, colors=RAINBOW, name=None):
|
||||
# pylint: disable=too-many-arguments
|
||||
def __init__(self, pixel_object, speed, colors=RAINBOW, name=None, start_color=0):
|
||||
self.colors = colors
|
||||
super().__init__(pixel_object, speed, colors[0], name=name)
|
||||
self._generator = self._color_generator()
|
||||
self.start_color = start_color
|
||||
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,17 +55,17 @@ 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
|
||||
index = (index + 1) % len(self.colors)
|
||||
if index == 0:
|
||||
if index == start_color:
|
||||
self.cycle_complete = True
|
||||
|
||||
def reset(self):
|
||||
"""
|
||||
Resets to the first color.
|
||||
"""
|
||||
self._generator = self._color_generator()
|
||||
self._generator = self._color_generator(self.start_color)
|
||||
|
|
|
|||
Loading…
Reference in a new issue