pymunk物理引擎基本例子

pymunk物理引擎基本例子

```"""pymunk物理引擎基本例子
"""
import turtle
import pymunk
import pymunk.util
from pymunk import Vec2d
import math, sys, random

def main():

space = pymunk.Space()
space.gravity = (0.0, -900.0)

## Balls
balls = []
balls_for_render = []

ticks_to_next_ball = 10
for x in range(5008880):
ticks_to_next_ball -= 1
if ticks_to_next_ball <= 0:
ticks_to_next_ball = 10000
mass = 10
inertia = pymunk.moment_for_circle(mass, 0, radius, (0,0))
body = pymunk.Body(mass, inertia)
x = random.randint(-200,200)
body.position = x, 400

balls.append(shape)
# 以下代码是lixingqiu加的
b = turtle.Turtle(visible=False,shape='circle')
b.penup()
b.goto(x, 400)
b.showturtle()
balls_for_render.append(b)

balls_to_remove = []

for i in range(len(balls)):
ball = balls[i]
if ball.body.position.y < 0:
balls_to_remove.append(i)# 加到待移除列表
b = balls_for_render[i]
b.goto(ball.body.position)

for i in balls_to_remove:
space.remove(balls[i], balls[i].body)
balls.pop(i)
balls_for_render.pop(i)

if len(balls) >= 1:
v = balls[0].body.position
print("(in on_draw): point = %.2f, %.2f" % (v.x,v.y))

### Update physics
for x in range(1):
space.step(1/50.0)

if __name__ == '__main__':
width,height = 600,600
screen = turtle.Screen()
screen.delay(0)
screen.setup(width,height)
screen.title("pymunk物理引擎基本例子")

sys.exit(main())
```