Ejemplo n.º 1
0
 def generate_system(self):
     u = Universe(self)
     sun = Body("The Sun", pow(10, 29 + self.rng.random() * 2), pow(10, 11.9 + self.rng.random() * 0.2), universe=u)
     u.sun = sun
     for i in range(1 + self.rng.randint(0, 4) + self.rng.randint(0, 4)):
         self.add_gas_giant(sun)
     for i in range(1 + self.rng.randint(0, 4) + self.rng.randint(0, 4)):
         self.add_rocky_planet(sun)
     u.bodies.sort(key=lambda obj: obj.distance(sun))
     u.make_system_tree()
     self.system_generated = True
     return u
Ejemplo n.º 2
0
class TestOrbit(unittest.TestCase):
    def setUp(self):
        self.u = Universe()
        self.u.sun = Body("The Sun", pow(10, 30),
                   pow(10, 12), universe=self.u)
        self.t = Thread(target=self.u.run, args=[False])

    def tearDown(self):
        self.u.stop()

    def test_solitary(self):
        starting_position = self.u.sun.position
        five_days = 10*24*5

        self.t.start()
        while (self.u.physics_cache.latest < five_days):
            pass
        self.u.paused = False
        while (self.u.time < five_days):
            pass
        self.u.paused = True
        self.assertEqual(self.u.sun.position, starting_position)
    
    def test_moon(self):
        self.u.sun.add_satellite("Satellite",
                                 pow(2, 70),
                                 pow(2, 42.5),
                                 (255,255,255),
                                 pow(2,27),
                                 0,
                                 0,
                                 pow(2,-6),
                                 0,
                                 0,
                                 False)
        starting_distance = self.u.bodies[0].distance(self.u.bodies[1])
        one_day = 10*24

        self.t.start()
        for i in range(1,10+1):
            while (self.u.physics_cache.latest < one_day*i):
                pass
            self.u.paused = False
            while (self.u.time < one_day*i):
                pass
            self.u.paused = True
            new_distance = self.u.bodies[0].distance(self.u.bodies[1])
            self.assertTrue(starting_distance*0.99999 <= new_distance <= starting_distance*1.00001)
Ejemplo n.º 3
0
def setup():
    global universe
    universe = Universe()
Ejemplo n.º 4
0
import pygame
import sys
from core.universe import Universe

pygame.init()
window_name = '.'.join(sys.argv[0].split('.')[:-1])
pygame.display.set_caption(window_name if window_name != '' else 'pygame')
SCREEN = pygame.display.set_mode((1000, 400))
done = False
clock = pygame.time.Clock()
FRAME_RATE = 60

universe = Universe()


def setup():
    global universe
    universe = Universe()


def draw():
    SCREEN.fill((245, 245, 245))
    if (universe.show(SCREEN)):
        universe.update()


#-----------------------------------------------------------------------

while not done:
    draw()
    for event in pygame.event.get():
Ejemplo n.º 5
0
 def setUp(self):
     self.u = Universe()
     self.u.sun = Body("The Sun", pow(10, 30),
                pow(10, 12), universe=self.u)
     self.t = Thread(target=self.u.run, args=[False])