import time from pyglet.gl import * window = pyglet.window.Window(500,500) pos1 = 100 pos2 = 200 startTime = time.time() def drawSquare(r,g,b): glColor3f(r,g,b) glBegin(GL_TRIANGLE_STRIP) glVertex2f(-10,-10) glVertex2f(10,-10) glVertex2f(-10,10) glVertex2f(10,10) glEnd() @window.event def on_draw(): glClear(GL_COLOR_BUFFER_BIT) glLoadIdentity() glPushMatrix() glTranslatef(pos1,350,0) drawSquare(1,0,0) glPopMatrix() glPushMatrix() glTranslatef(pos2,150,0) drawSquare(0,0,1) glPopMatrix() def lerp(start,end,a): return (1-a) * start + a * end def slowInSlowOut(a): return -2*a*a*a + 3*a*a def update(dt): global pos1, pos2, startTime a = (time.time() - startTime) / 5 if a > 1: a = 0 startTime = time.time() pos1 = lerp(100,400,a) pos2 = lerp(100,400,slowInSlowOut(a)) pyglet.clock.schedule_interval(update,1/60.0) pyglet.app.run()