import pygame, time, sys
from pygame.locals import *

numleds = 64

pygame.init()
screen = pygame.display.set_mode ((64+numleds*24,96),0,32)
screen.fill ((255,255,255))
pygame.display.set_caption ('NeoPixel Strip')

colorarray = []

for i in range (numleds):
    colorarray.append(i)
    colorarray[i] = (16,16,16)

class WS2812:
    def __init__(self,color,screen):
        self.c = color
        self.screen = screen
        self.draw()

    def draw(self):
        for x in range (numleds):
            led = pygame.draw.rect(screen,self.c[x],(32+x*24,32,16,16))
        pygame.display.update ()

    def color(self,color):
        self.c = color
        self.draw ()

led = WS2812 (colorarray,screen)
time.sleep(1)

somecolors = ((255,0,0),(0,255,0),(0,0,255))
for i in range (numleds):
    colorarray[i] = somecolors [(i)%len(somecolors)]

for i in range (100):
    colortemp = colorarray[0]
    for j in range (numleds):
        colorarray[j] = colorarray[(j+1)%numleds]
    colorarray[numleds-1] = colortemp
    led.color (colorarray)
    time.sleep(.5)

    for event in pygame.event.get ():
        if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
            pygame.quit ()
            sys.exit ()
