import time, math from pyglet.gl import * window = pyglet.window.Window() class AlphaSquare2: def __init__(self, color1, color2): 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) solidSquare = AlphaSquare2([1, 1, 1, 1], [1, 1, 1, 1]) solidSquare.xpos = 320 solidSquare.ypos = 240 transpSquare = AlphaSquare2([1, 0, 0, 0.9], [1, 0, 0, 0]) transpSquare.xpos = 320 transpSquare.ypos = 240 @window.event def on_draw(): global transpSquare, solidSquare glClearColor(0, 0.3, 0.5, 0) glClear(GL_COLOR_BUFFER_BIT) glLoadIdentity() solidSquare.draw() transpSquare.draw() def update(dt): global transpSquare transpSquare.xpos = 320 + 128 * math.sin(time.time()) transpSquare.ypos = 240 + 128 * math.cos(time.time()) pyglet.clock.schedule_interval(update,1/60.0) pyglet.app.run()