def shoot(self): ## to tell the bullet where to spawn now = pygame.time.get_ticks() if now - self.last_shot > self.shoot_delay: self.last_shot = now bullet = BulletEnemy(self.rect.centerx, self.rect.bottom, player.x, player.y) sprites.add(bullet) bulletsEnemy.add(bullet)
def shoot(self): ## to tell the bullet where to spawn now = pygame.time.get_ticks() if now - self.last_shot > self.shoot_delay: self.last_shot = now if self.power == 1: bullet = Bullet(self.rect.left, self.rect.top, 0) bullet2 = Bullet(self.rect.right, self.rect.top, 0) sprites.add(bullet) sprites.add(bullet2) bullets.add(bullet) bullets.add(bullet2) if self.power >= 2: bullet1 = Bullet(self.rect.left, self.rect.centery, -2) bullet2 = Bullet(self.rect.right, self.rect.centery, 2) bullet3 = Bullet(self.rect.centerx, self.rect.centery, 0) sprites.add(bullet1) sprites.add(bullet2) sprites.add(bullet3) bullets.add(bullet1) bullets.add(bullet2) bullets.add(bullet3)
def new_enemy(): enemy = Enemy() sprites.add(enemy) enemies.add(enemy)
player.y) sprites.add(bullet) bulletsEnemy.add(bullet) def new_enemy(): enemy = Enemy() sprites.add(enemy) enemies.add(enemy) ss = SpriteSheet('Lightning.png') player_imgs = [] player_imgs.append(ss.get_image(0, 0, 30, 30)) player_imgs.append(ss.get_image(32, 0, 30, 30)) player_imgs.append(ss.get_image(64, 0, 30, 30)) player_imgs.append(ss.get_image(96, 0, 30, 30)) ss1 = SpriteSheet('UFO.png') enemy_imgs = [] enemy_imgs.append(ss1.get_image(0, 0, 30, 30)) enemy_imgs.append(ss1.get_image(32, 0, 30, 30)) enemy_imgs.append(ss1.get_image(64, 0, 30, 30)) enemy_imgs.append(ss1.get_image(96, 0, 30, 30)) player = Player() for i in range(4): new_enemy() PlayerSprite.add(player) sprites.add(player)
def __init__(self): clock = pygame.time.Clock() pygame.init() screen = pygame.display.set_mode((Commons.WIDTH,Commons.HEIGHT)) pygame.display.set_caption("Game") background = pygame.image.load(path.join(img_dir,'background.png')).convert() background = pygame.transform.scale(background,(Commons.WIDTH,Commons.HEIGHT)) background_rect = background_rect = background.get_rect() #game loop running = True while True: ev = pygame.event.poll() if ev.type == pygame.KEYDOWN: if ev.key == pygame.K_RETURN: break elif ev.key == pygame.K_q: pygame.quit() quit() else: self.draw_text(screen, "Press [ENTER] To Begin", 30, Commons.WIDTH/2, Commons.HEIGHT/2) self.draw_text(screen, "or [Q] To Quit", 30, Commons.WIDTH/2, (Commons.HEIGHT/2)+40) pygame.display.update() while running: clock.tick(120) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running = False hits = pygame.sprite.groupcollide(enemies, bullets, True, True) for hit in hits: print("HIT") Entities.new_enemy() if random.random() > 0.8: pw = Power_ups.Pow(hit.rect.center) sprites.add(pw) power_ups.add(pw) hitsPlayer = pygame.sprite.spritecollide(player,bulletsEnemy,True,pygame.sprite.collide_circle) for hitP in hitsPlayer: print("DEAD") player.lives -=1 player.power = 1 player.hide() for sprite in bulletsEnemy: if isinstance(sprite, BulletEnemy): sprite.kill() if player.lives == 0: running = False hits = pygame.sprite.spritecollide(player, power_ups, True) for hit in hits: if hit.type == 'extra_live': if player.lives < 5: player.lives += 1 if hit.type == 'upgrade': player.powerup() screen.fill(Commons.BLACK) sprites.update() screen.blit(background, background_rect) sprites.draw(screen) self.draw_lives(screen,5,5,player.lives,player.image_lives) pygame.display.flip() pygame.quit()