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 a[1] += y i.proccessVel(a, dt / timeScale) i.proccessMove(dt / timeScale) pygame.draw.circle(disp, (255, 255, 255), i.position, i.mass**(1 / 3)) #a = planet.calcGravityForce(earth, sun) #earth.proccessVel(a, dt/50) #earth.proccessMove(dt/50) #a = planet.calcGravityForce(sun, earth) #sun.proccessVel(a, dt/50) #sun.proccessMove(dt/50) #pygame.draw.circle(disp, (255, 255, 255), sun.position, sun.mass ** (1 / 3))