diff options
author | C. Scott Ananian <cscott@laptop.org> | 2008-11-04 01:17:56 (GMT) |
---|---|---|
committer | C. Scott Ananian <cscott@laptop.org> | 2008-11-04 01:17:56 (GMT) |
commit | ec7d4f57742f6138002ed5f66ba735cea984f1fd (patch) | |
tree | a026cb6b94dfe6130673ba8ac43e58cf1ff2bd9a /data/graphics | |
parent | 80e16706827a64f8da25ddb0a697a6dafa8760a3 (diff) |
Move physics/shapes example to graphics/physics, at least until there are more.
Also fix some minor issues: we don't need to create a Clock;
pippy.pygame.next_frame() does that for us; and the nested while loop is not
quite right.
Diffstat (limited to 'data/graphics')
-rw-r--r-- | data/graphics/physics | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/data/graphics/physics b/data/graphics/physics new file mode 100644 index 0000000..88138fd --- /dev/null +++ b/data/graphics/physics @@ -0,0 +1,47 @@ +# 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() + + # 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() + |