Example #1
0
    def draw_on_surface(self, surface, game_board):
        if not self.start_explosion:
            time_before = self.time
            self.time = pygame.time.get_ticks()
            elapsed = self.time - time_before
            self.x_position -= int(elapsed * self.speed)
            self.image.rect.left = int(self.x_position)

            if random.randint(1, 6) == 6:
                time_now = pygame.time.get_ticks()
                if self.last_fire_time + self.fire_time_delay < time_now:
                    bullet = BulletSprite(False)
                    bullet.image.rect.left = self.image.rect.left + self.image.rect.width / 2 - 4
                    bullet.image.rect.top = self.image.rect.top + self.image.rect.height / 2 - 9
                    bullet.rect = bullet.image.rect
                    game_board.enemy_group.add(bullet)
                    self.last_fire_time = time_now

            super(EnemySprite, self).draw_on_surface(surface, game_board)
        else:
            if self.explosion_frame != 15:
                tmp_rect = self.image.rect
                self.image = ImageObject('explosion-%d.png' %
                                         self.explosion_frame)
                self.image.rect = tmp_rect
                self.explosion_frame += 1
                super(EnemySprite, self).draw_on_surface(surface, game_board)
Example #2
0
 def __init__(self, is_ship_bullet=True, *args, **kwargs):
     super(BulletSprite, self).__init__(*args, **kwargs)
     self.image = ImageObject('ship_bullet.png')
     self.is_ship_bullet = is_ship_bullet
     if not self.is_ship_bullet:
         self.image.surface_to_draw = pygame.transform.flip(
             self.image.surface_to_draw, True, False)
     self.time = pygame.time.get_ticks()
Example #3
0
    def __init__(self, level=1):
        self.level = level

        self.background = ImageObject('background.png')

        self.ship = ShipSprite()
        self.bullets_group = pygame.sprite.Group()
        self.enemy_group = pygame.sprite.Group()
        self.inactive_group = pygame.sprite.Group()

        self.level_file = open(
            os.path.join('data', 'levels', 'level_%d.txt' % self.level))
        self.level_file.readline(
        )  # First line indicates just limit of file width
Example #4
0
 def __init__(self, *args, **kwargs):
     self.background = ImageObject('background.png')
Example #5
0
 def __init__(self, *args, **kwargs):
     super(BossSprite, self).__init__(*args, **kwargs)
     self.image = ImageObject('boss.png')
     self.last_fire_time = pygame.time.get_ticks()
Example #6
0
 def __init__(self, buffer, buffer_size, board_after):
     self.image = pygame.image.frombuffer(buffer, buffer_size, 'RGB')
     self.next_board = board_after
     self.background = ImageObject('background.png')
Example #7
0
 def __init__(self, *args, **kwargs):
     super(SpriteBase, self).__init__(*args, **kwargs)
     self.image = ImageObject('ship.png')
     self.rect = self.image.rect
Example #8
0
 def __init__(self, *args, **kwargs):
     super(EnemySprite, self).__init__(*args, **kwargs)
     self.image = ImageObject('enemy_ship.png')
     self.time = pygame.time.get_ticks()
Example #9
0
 def __init__(self, *args, **kwargs):
     super(AsteroidSprite, self).__init__(*args, **kwargs)
     self.image = ImageObject('asteroid_1.png')
     self.time = pygame.time.get_ticks()
Example #10
0
    def process_draw_on_surface(self, surface):
        self.background.draw_on_surface(surface)

        if self.objects == []:
            label = LabelObject('HOW TO PLAY?', 30)
            label.rect.left = 190
            label.rect.top = 25
            self.objects.append(label)

            label = LabelObject('Move your ship by pressing up and down.', 18)
            label.rect.left = 120
            label.rect.top = 120
            self.objects.append(label)

            label = LabelObject('To shoot press spacebar.', 18)
            label.rect.left = 120
            label.rect.top = 145
            self.objects.append(label)

            image = ImageObject('ship.png')
            image.rect.left = 45
            image.rect.top = 120
            self.objects.append(image)

            image = ImageObject('arrows.png')
            image.rect.left = 49
            image.rect.top = 176
            self.objects.append(image)

            image = ImageObject('arrows.png')
            image.rect.left = 49
            image.rect.top = 75
            image.surface_to_draw = pygame.transform.flip(
                image.surface_to_draw, False, True)
            self.objects.append(image)

            label = LabelObject('But watch out for', 18)
            label.rect.left = 120
            label.rect.top = 240
            self.objects.append(label)

            label = LabelObject('THE BOSS!', 28)
            label.rect.left = 350
            label.rect.top = 235
            self.objects.append(label)

            label = LabelObject('You must kill him before he shows', 18)
            label.rect.left = 200
            label.rect.top = 340
            self.objects.append(label)

            label = LabelObject('9 TIMES', 68)
            label.rect.left = 240
            label.rect.top = 370
            self.objects.append(label)

            image = ImageObject('boss.png')
            image.rect.left = 39
            image.rect.top = 300
            self.objects.append(image)

            self.objects.append(image)

        for element in self.objects:
            element.draw_on_surface(surface)

        buffer = pygame.image.tostring(surface, 'RGB')
        self.buffer = buffer
        self.buffer_size = surface.get_size()
Example #11
0
 def __init__(self, *args, **kwargs):
     super(ShipSprite, self).__init__(*args, **kwargs)
     self.image = ImageObject('ship.png')