Beispiel #1
0
#earth = planet([screen[0] // 2 - 10, screen[1] // 2 + 100], [0, -1], 10)
clock = pygame.time.Clock()
#planets=[planet([random.randint(0,screen[0]), random.randint(0,screen[1])], [0,0], random.randint(1,100)) for i in range(20)]

dt = 0
timeScale = 25
running = True
#main loop
while running:
    disp.fill((0, 0, 0))
    #calculate planets
    for i in planets:
        a = [0, 0]
        for j in planets:
            if i != j:
                if planet.distance2(i, j) < ((i.mass**(1 / 3)) +
                                             (j.mass**(1 / 3)))**2:
                    sum_mass = i.mass + j.mass
                    i.velocity[
                        0] = i.velocity[0] * i.mass / sum_mass + j.velocity[
                            0] * j.mass / sum_mass
                    i.velocity[
                        1] = i.velocity[1] * i.mass / sum_mass + j.velocity[
                            1] * j.mass / sum_mass
                    i.position[0] = (i.position[0] + j.position[0]) / 2
                    i.position[1] = (i.position[1] + j.position[1]) / 2
                    i.mass = sum_mass
                    planets.remove(j)
                    continue
                x, y = planet.calcGravityForce(i, j)
                a[0] += x