import time, math from pyglet.gl import * window = pyglet.window.Window() class AlphaSquare: def __init__(self, moveradius, color1, color2): self.moveradius = moveradius self.xpos = 0 self.ypos = 0 colors = color1 + color1 + color2 + color2 self.vlist = pyglet.graphics.vertex_list(4, ('v2f', [-128,-128, 128,-128, -128,128, 128,128]), ('c4f', colors)) def draw(self): glEnable(GL_BLEND) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) glPushMatrix() glTranslatef(self.xpos, self.ypos, 0) self.vlist.draw(GL_TRIANGLE_STRIP) glPopMatrix() glDisable(GL_BLEND) def update(self,dt): self.xpos = self.moveradius * math.sin(time.time()) self.ypos = self.moveradius * math.cos(time.time()) objects = [] objects.append( AlphaSquare(0, [1, 1, 1, 1], [1, 1, 1, 1]) ) objects.append( AlphaSquare(128, [1,0,0, 0.9], [0, 1, 0, 0.0]) ) @window.event def on_draw(): glClearColor(0, 0.3, 0.5, 0) glClear(GL_COLOR_BUFFER_BIT) glLoadIdentity() glTranslatef(320,240,0) for o in objects: o.draw() def update(dt): global objects for o in objects: o.update(dt) pyglet.clock.schedule_interval(update,1/60.0) pyglet.app.run()