import hyperion
import time
import colorsys
from random import randint

# define pacman
pacman = bytearray((255, 255, 1))

# define ghosts
redGuy = bytearray((255, 0, 0))
pinkGuy = bytearray((255, 184, 255))
blueGuy = bytearray((0, 255, 255))
slowGuy = bytearray((255, 184, 81))

light = bytearray((255, 184, 174))
background = bytearray((0, 0, 0))

# initialize the led data
ledDataEscape = bytearray()
for i in range(hyperion.ledCount):
	if i == 1:
		ledDataEscape += pacman
	elif i == 7:
		ledDataEscape += pinkGuy
	elif i == 10:
		ledDataEscape += blueGuy
	elif i == 13:
		ledDataEscape += slowGuy
	elif i == 16:
		ledDataEscape += redGuy
	else:
		ledDataEscape += background

ledDataChase = bytearray()
for i in range(hyperion.ledCount):
	if i == 1:
		ledDataChase += pacman
	elif i in [7, 10, 13, 16]:
		ledDataChase += bytearray((33, 33, 255))
	else:
		ledDataChase += background

# increment = 3, because LED-Color is defined by 3 Bytes
increment = 3
sleepTime = 0.3

def shiftLED(ledData, increment, limit, lightPos=None):
	state = 0
	while state < limit and not hyperion.abort():
		ledData = ledData[increment:] + ledData[:increment]

		if (lightPos):
			tmp = ledData[lightPos]
			ledData[lightPos] = light

		hyperion.setColor(ledData)

		if (lightPos):
			ledData[lightPos] = tmp

		time.sleep(sleepTime)
		state += 1

# start the write data loop
while not hyperion.abort():

	# escape mode
	ledData = ledDataEscape
	shiftLED(ledData, increment, hyperion.ledCount)

	random = randint(10,hyperion.ledCount)

	# escape mode + power pellet
	s = slice(3*random, 3*random+3)
	shiftLED(ledData, increment, hyperion.ledCount - random, s)

	# chase mode
	shift = 3*(hyperion.ledCount - random)
	ledData=ledDataChase[shift:]+ledDataChase[:shift]
	shiftLED(ledData, -increment, 2*hyperion.ledCount-random)


@@ -65,16 +65,83 @@
 andint%0A%0A
+#get args%0AsleepTime = float(hyperion.args.get('sleep-time', 0.3))%0A%0A
 # define

Update pacman.py