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)
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()
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
def __init__(self, *args, **kwargs): self.background = ImageObject('background.png')
def __init__(self, *args, **kwargs): super(BossSprite, self).__init__(*args, **kwargs) self.image = ImageObject('boss.png') self.last_fire_time = pygame.time.get_ticks()
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')
def __init__(self, *args, **kwargs): super(SpriteBase, self).__init__(*args, **kwargs) self.image = ImageObject('ship.png') self.rect = self.image.rect
def __init__(self, *args, **kwargs): super(EnemySprite, self).__init__(*args, **kwargs) self.image = ImageObject('enemy_ship.png') self.time = pygame.time.get_ticks()
def __init__(self, *args, **kwargs): super(AsteroidSprite, self).__init__(*args, **kwargs) self.image = ImageObject('asteroid_1.png') self.time = pygame.time.get_ticks()
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()
def __init__(self, *args, **kwargs): super(ShipSprite, self).__init__(*args, **kwargs) self.image = ImageObject('ship.png')