def update(self):
     # while a solid bullet
     if not self.destroyed:
         # Move
         if self.dir == "UP":
             self.y -= self.speed
             self.rect.y = int(self.y)
         elif self.dir == "DOWN":
             self.y += self.speed
             self.rect.y = int(self.y)
         elif isinstance(self.dir, tuple):
             self.y += self.dir[0] * self.speed
             self.rect.y = int(self.y)
             self.x += self.dir[1] * self.speed
             self.rect.x = int(self.x)
         # Check if reach bottom or top
         if self.rect.top >= self.screen.get_rect().bottom:
             GOL.del_go(self)
         elif self.rect.bottom <= self.screen.get_rect().top:
             GOL.del_go(self)
         # Check if hit anything
         if isinstance(self.ship, Player):
             for alien in GOL.get_golist(Aliens):
                 if self.rect.colliderect(alien.rect):
                     if alien.spawned and not alien.destroyed:
                         alien.take_dmg(self.dmg)
                         self.destroyed = True
         elif isinstance(self.ship, Aliens):
             if GOL.get_go(Player):
                 if self.rect.colliderect(GOL.get_go(Player).rect):
                     GOL.get_go(Player).take_dmg(self.dmg)
                     self.destroyed = True
Exemple #2
0
def draw(screen):
    # Reset screen
    screen.blit(space, (0, 0))
    # Object drawing
    for object in GOL.get_golist():
        object.draw()
    # Update and FPS
    font = pygame.font.SysFont("Arial MS", size=16)
    text = font.render(str(round(clock.get_fps(), 2)), False, (250, 250, 250))
    screen.blit(text, (0, 0))
    pygame.display.flip()
    clock.tick(60)
 def update(self):
     # Check collision
     self.transparent = False
     for object in GOL.get_golist():
         rect = getattr(object, "rect", "")
         if rect:
             if self.rect.colliderect(rect):
                 self.transparent = True
     # Check variable
     # ! since a 0 height surface cant exist there is an IF statement
     if self.object and getattr(self.object, self.variable_name) > 0:
         self.var_height = getattr(
             self.object, self.variable_name) / self.var_max_value * (
                 self.height - self.thick * 2)
         self.s = pygame.Surface(
             (self.width - self.thick * 2, self.var_height))
         self.s.fill(self.color)
         if self.transparent:
             self.s.set_alpha(100)
             self.bs.set_alpha(100)
         else:
             self.s.set_alpha(250)
             self.bs.set_alpha(250)
 def lvl_ended(cls):
     for x in GOL.get_golist():
         if isinstance(x, Aliens):
             return False
     return True
 def check_collision(self):
     for alien in GOL.get_golist(Aliens):
         if self.rect.colliderect(alien.rect) and alien.destroyed == False:
             alien.destroyed = True
             self.take_dmg(alien.hp)
Exemple #6
0
def update():
    for object in GOL.get_golist():
        object.update()