Catch a couple special cases
- Light the first pixel on timer start - Wait to light the last pixel until timer has truly elapsed
This commit is contained in:
parent
5637ec322a
commit
dcd0246843
|
@ -111,18 +111,34 @@ def countdown(
|
|||
|
||||
# Do update stuff
|
||||
|
||||
# Loop over every pixel ID that should be lit
|
||||
# based on the elapsed time
|
||||
for pixel in range(round(num_pixels * ((seconds - current_time) / seconds))):
|
||||
# Set pixel color stuff
|
||||
if current_time < 0:
|
||||
pass
|
||||
elif current_time <= redtime:
|
||||
colorizer(pixel, colormode, red=True)
|
||||
elif current_time <= yellowtime:
|
||||
colorizer(pixel, colormode, yellow=True)
|
||||
else:
|
||||
colorizer(pixel, colormode)
|
||||
# Calculate the current position
|
||||
current_position = round(num_pixels * ((seconds - current_time) / seconds))
|
||||
|
||||
# Catch a couple of special cases
|
||||
if current_position == 0:
|
||||
# Light the first LED when the timer starts
|
||||
# regardless of other factors
|
||||
colorizer(0, colormode)
|
||||
elif current_position == num_pixels and current_time > 0:
|
||||
# If current_position calls for *all*
|
||||
# pixels to be lit, and the timer
|
||||
# hasn't expired yet, don't do anything.
|
||||
# This should delay the last pixel from
|
||||
# lighting until the timer has fully elapsed
|
||||
pass
|
||||
else:
|
||||
# Loop over every pixel ID that should be lit
|
||||
# based on the elapsed time
|
||||
for pixel in range(current_position):
|
||||
# Set pixel color stuff
|
||||
if current_time < 0:
|
||||
pass
|
||||
elif current_time <= redtime:
|
||||
colorizer(pixel, colormode, red=True)
|
||||
elif current_time <= yellowtime:
|
||||
colorizer(pixel, colormode, yellow=True)
|
||||
else:
|
||||
colorizer(pixel, colormode)
|
||||
|
||||
# Display the result IRL
|
||||
pixels.show()
|
||||
|
|
Loading…
Reference in New Issue