# physics import pippy, pygame, sys, math from pygame.locals import * from pippy import physics # initialize pygame first thing pygame.init() screen = pygame.display.set_mode((1200,900)) # set up the physics world (instance of Elements) world = physics.Elements(screen.get_size()) world.renderer.set_surface(screen) # set up initial physics objects world.add.ground() world.add.ball((600,0), 50) world.add.rect((500,0), 25, 300, dynamic=True, density=1.0, restitution=0.16, friction=0.5) # add 20 more balls balls = 0 while(balls<20): world.add.ball((balls*5+200,balls*5), 50) balls+=1 # begin physics simulation world.run_physics = True while pippy.pygame.next_frame() and world.run_physics: for event in pygame.event.get(): if event.type == QUIT: sys.exit() elif event.type == KEYDOWN: sys.exit() elif event.type == MOUSEBUTTONDOWN and event.button == 1: bodylist = world.get_bodies_at_pos(event.pos, include_static=False) if bodylist and len(bodylist) > 0: world.add.mouseJoint(bodylist[0], event.pos) elif event.type == MOUSEBUTTONUP and event.button == 1: world.add.remove_mouseJoint() elif event.type == MOUSEMOTION and event.buttons[0]: world.mouse_move(event.pos) # clear display with a color # (r,g,b), where 0<=value<256 screen.fill((80,160,240)) # update & draw physics world world.update() world.draw() # update the display pygame.display.flip()