def fire(self): if self.dmg_timer < 0: GOL.add_go( Projectile(self, "DOWN", self.dmg_speed, self.dmg, sprite=self.dmg_sprite, sprite_expl=r"images\alien\plasmaball_expl.png")) self.dmg_timer = self.dmg_rate else: self.dmg_timer -= 1
def take_dmg(self, dmg): if self.shield_hp > 0: self.shield_hp -= dmg self.shield_charge = 0 if self.shield_hp < 0: self.hp += self.shield_hp self.shield_hp = 0 else: self.hp -= dmg self.shield_charge = 0 if self.hp <= 0: self.destroyed = True GOL.add_go( Title("GAME OVER!", 60, self.expl_time * 3, color=(250, 50, 100)))
def play_lvl(cls, lvl_num): lvl = cls.levels[str(lvl_num)] GOL.add_go(Title(lvl["title"], 100, 60 * lvl["delay"])) for spawn in lvl["spawns"]: if spawn["type"] == "alien1": GOL.add_go( Alien1(spawn["x"], timer=spawn["timer"] * 60 + lvl["delay"] * 60)) if spawn["type"] == "alien2": GOL.add_go( Alien2(spawn["x"], timer=spawn["timer"] * 60 + lvl["delay"] * 60))
def setup(): from main import screen # Delete old game objects GOL.del_golist() # Add new player, base, hp bars and reset levels GOL.add_go(Player()) GOL.add_go(Base()) GOL.add_go(PlayerInteface()) LM.reset() gamestart = False while not gamestart: # Start screen, fill and text screen.fill((0, 250, 0)) screen.blit(space, (0, 0)) pygame.font.init() font = pygame.font.SysFont("Tahoma MS", size=60) title = font.render("KILL ALL THE ALIENS!", True, (255, 215, 0)) rect = title.get_rect() rect.centerx = screen.get_rect().centerx rect.centery = screen.get_rect().top + 100 screen.blit(title, rect) font = pygame.font.SysFont("Arial MS", size=18) title = font.render("PRESS ANY KEY TO START", True, (250, 250, 0)) rect = title.get_rect() rect.centerx = screen.get_rect().centerx rect.centery = screen.get_rect().top + 400 screen.blit(title, rect) pygame.display.update() clock.tick(60) for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: gamestart = True
def fire(self): GOL.add_go( Projectile(self, "UP", self.dmg_speed, self.dmg, self.dmg_sprite))