Example #1
0
    def update(self, scroll_speed, heliose):
        for collision in self.collisions:
            self.mass += collision.mass
        self.internal_force = consts.G * self.mass / self.radius ** 2
        mx, my = heliose.rect.center
        x, y = self.rect.center
        r = sqrt((x - mx) ** 2 + (my - y) ** 2)
        pull_force = consts.G * self.mass * heliose.mass / r ** 2
        acc = consts.G * (heliose.mass + self.mass) / r ** 2
        self.dx += acc * (mx - x) / r
        self.dy += acc * (my - y) / r
        self.df = pull_force - heliose.internal_force
        if self.df > 0:
            self.extraction = True
        else:
            self.extraction = False

        self.image = image.animate("nemesis", self.frame / consts.period).convert()
        self.image.set_colorkey((0, 0, 0))
        self.frame += 1
        self.radius = 8 * int(log(self.mass, 5))
        self.image = pygame.transform.scale(self.image, (self.radius * 2, self.radius * 2))
        self.rect = self.image.get_rect()
        self.rect.center = x, y
        self.rect.x += self.dx + scroll_speed[0] * 2
        self.rect.y += self.dy + scroll_speed[1] * 2
        self.rect.right %= consts.screen_size[0] * 2
        self.rect.bottom %= consts.screen_size[1] * 2
        self.frame += 1
Example #2
0
 def animate(self):
     self.image = image.animate(self.image_name, self.frame/consts.period).convert()
     self.image.set_colorkey((0, 0, 0))
     self.image = pygame.transform.scale(self.image, [self.radius*2]*2) 
     self.rect = self.image.get_rect()
     self.rect.center = (consts.screen_size[0]/2,
                         consts.screen_size[1]/2)
     self.frame += 1
Example #3
0
 def __init__(self):
     pygame.sprite.Sprite.__init__(self)
     
     self.frame = 0
     self.image = image.animate('nemesis', self.frame)
     self.rect = self.image.get_rect()
     self.dx, self.dy = 0, 0
     self.mass = 0
Example #4
0
 def update(self):
     for collision in self.particle_collision:
         self.mass += collision.mass
     self.image = image.animate('heliose', self.frame/consts.period).convert()
     self.image.set_colorkey((0, 0, 0))
     self.frame += 1
     self.radius = 8*int(math.log(self.mass, 5))
     self.image = pygame.transform.scale(self.image, (self.radius*2, self.radius*2))
     self.rect = self.image.get_rect()
     self.rect.center = consts.screen_size[0]/2, consts.screen_size[1]/2
Example #5
0
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)

        self.image = image.animate('heliose', 0)
        self.rect = self.image.get_rect()
        self.particle_collision = []
        self.rect.center = consts.screen_size[0]/2, consts.screen_size[1]/2
        self.mass = 100
        self.frame = 0
        self.radius = 8*int(math.log(self.mass, 10))
Example #6
0
 def __init__(self):
     pygame.sprite.Sprite.__init__(self)
     self.extraction = False
     self.frame = 0
     self.collisions = []
     self.image = image.animate("nemesis", self.frame)
     self.rect = self.image.get_rect()
     self.dx, self.dy = 0, 0
     self.dy = 0
     self.mass = 10000
     self.radius = 8 * int(log(self.mass, 5))
Example #7
0
    def __init__(self, name):
        pygame.sprite.Sprite.__init__(self)
        self.name = name

        self.frame = random.randint(0, 3)
        self.image = image.animate('hydrospiro', 0)
        self.rect = self.image.get_rect()
        self.rect.center = random.randint(0, consts.screen_size[0]), random.randint(0, consts.screen_size[1])
        self.mass = 10
        self.dx, self.dy = 0, 0
        self.image.set_colorkey((0, 0, 0))
        self.radius = int(math.log(self.mass, 10))
Example #8
0
    def __init__(self, name):
        pygame.sprite.Sprite.__init__(self)
        self.name = name

        self.frame = rnd(0, 3)
        self.image = image.animate("hydrospiro", 0)
        self.rect = self.image.get_rect()
        self.rect.center = (
            rnd(-consts.screen_size[0], consts.screen_size[0] * 2),
            rnd(-consts.screen_size[1], consts.screen_size[1] * 2),
        )
        self.mass = 1.0
        self.dx, self.dy = 0, 0
        self.image.set_colorkey((0, 0, 0))
        self.radius = int(log(self.mass, 10))
Example #9
0
 def update(self, nemesis):
     if nemesis:
         px, py = self.rect.center
         mx, my = nemesis.rect.center
         r = sqrt((mx - px) ** 2 + (my - py) ** 2)
         acc = consts.G * nemesis.mass
         self.dx = acc * (mx - px) / r
         self.dy = acc * (my - py) / r
     else:
         for collision in self.particle_collision:
             self.mass += collision.mass
         self.internal_force = consts.G * self.mass / self.radius ** 2
         self.image = image.animate("heliose", self.frame / consts.period).convert()
         self.image.set_colorkey((0, 0, 0))
         self.frame += 1
         self.radius = 8 * int(log(self.mass, 5))
         self.image = pygame.transform.scale(self.image, (self.radius * 2, self.radius * 2))
         self.rect = self.image.get_rect()
         self.rect.center = (consts.screen_size[0] / 2 + self.dx, consts.screen_size[1] / 2 + self.dy)
Example #10
0
    def update(self, scroll_speed, attractor=None, pos=None, mass=None):
        px, py = self.rect.center
        if attractor:
            mx, my = pos
            r = sqrt((mx - px) ** 2 + (my - py) ** 2)
            if r:
                acc = consts.G * mass / r ** 2
                self.dx += acc * (mx - px) / r
                self.dy += acc * (my - py) / r

        else:
            # if px < 0 or px > consts.screen_size[0] or py < 0 or py > consts.screen_size[1]:
            #    self.kill()
            # for particle in self.col:
            #    self.mass += particle.mass
            self.image = image.animate("hydrospiro", self.frame / consts.period).convert()
            self.image.set_colorkey((0, 0, 0))
            self.rect.x += self.dx + scroll_speed[0]
            self.rect.y += self.dy + scroll_speed[1]
            self.frame += 1
Example #11
0
 def animate(self):
     self.image = image.animate(self.image_name, self.frame/consts.period)
     self.image.set_colorkey((0, 0, 0))
     self.frame += 1
Example #12
0
 def update(self):
     
     self.image = image.animate('nemesis', self.frame)
     self.rect.x += self.dx
     self.rect.y += self.dy
     self.frame += 1