Merge pull request #39 from rhooper/bugfixes

Various bugfixes and simplifications
This commit is contained in:
Kattni 2020-06-08 20:46:15 -04:00 committed by GitHub
commit fed9ec0d22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 8 deletions

View file

@ -81,11 +81,13 @@ class Animation:
def __str__(self):
return "<%s: %s>" % (self.__class__.__name__, self.name)
def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw the animation draw() at intervals
configured by the speed property (set from init).
:param bool show: Whether to automatically call show on the pixel object when an animation
fires. Default True.
:return: True if the animation draw cycle was triggered, otherwise False.
"""
if self._paused:
@ -97,10 +99,12 @@ class Animation:
# Draw related animations together
for anim in self._peers:
anim.draw_count += 1
anim.draw()
anim.after_draw()
anim.draw_count += 1
if show:
for anim in self._peers:
anim.show()

View file

@ -148,7 +148,7 @@ class AnimationGroup:
"""
self._also_notify.append(callback)
def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw all of the animations
in the group.
@ -156,9 +156,12 @@ class AnimationGroup:
:return: True if any animation draw cycle was triggered, otherwise False.
"""
if self._sync:
return self._members[0].animate()
result = self._members[0].animate(show=False)
if result and show:
self._members[0].show()
return result
return any([item.animate() for item in self._members])
return any([item.animate(show) for item in self._members])
@property
def color(self):

View file

@ -204,7 +204,7 @@ class AnimationSequence:
"""
self.activate(random.randint(0, len(self._members) - 1))
def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw the current animation
or go to the next animation based on the advance_interval if set.
@ -213,7 +213,7 @@ class AnimationSequence:
"""
if not self._paused and self._advance_interval:
self._auto_advance()
return self.current_animation.animate()
return self.current_animation.animate(show)
@property
def current_animation(self):