#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