def hit_power(g, a, b): if not tile_close(g, a, b): return g.game.sfx['powerup'].play() #print '+ power' player.powerup(g, b) tile_explode(g, a)
def hit_power(g,a,b): if not tile_close(g,a,b): return g.game.sfx['powerup'].play() #print '+ power' player.powerup(g,b) tile_explode(g,a)
def hit_power(g, a, b, weapon): if not tile_close(g, a, b): return g.game.sfx['powerup'].play() # print '+ power' g.game.powerup = weapon if weapon == "shootgun": g.game.weapons[1] = weapon elif weapon == "cannon": g.game.weapons[2] = weapon elif weapon == "granadelauncher": g.game.weapons[3] = weapon elif weapon == "laser": g.game.weapons[4] = weapon player.powerup(g, b, weapon) tile_explode(g, a)
def start(self): score = 0 running = True while running: self.clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False all_sprites.update() hits = pygame.sprite.groupcollide(mobs, bullets, True, True) for hit in hits: score += 50 - hit.radius random.choice(expl_sounds).play() expl = Explosion(hit.rect.center, 'lg') all_sprites.add(expl) if random.random() > 0.9: pow = Pow(hit.rect.center) all_sprites.add(pow) powerups.add(pow) newmob() hits = pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_circle) for hit in hits: player.shield -= hit.radius * 2 expl = Explosion(hit.rect.center, 'sm') all_sprites.add(expl) newmob() if player.shield <= 0: death_explosion = Explosion(player.rect.center, 'player') all_sprites.add(death_explosion) player.hide() player.lives -= 1 player.shield = 100 hits = pygame.sprite.spritecollide(player, powerups, True) for hit in hits: if hit.type == 'shield': player.shield += random.randrange(10, 30) if player.shield >= 100: player.shield = 100 if hit.type == 'gun': player.powerup() power_sound.play() if player.lives == 0 and not death_explosion.alive(): Win.ShowGoScreen(score) cur.execute("INSERT INTO Space VALUES(1, {}, {})".format( score, datetime.now())) con.commit() if score >= 1000: Win.VictoryScreen(score) cur.execute("INSERT INTO Space VALUES(1, {}, {})".format( score, datetime.now())) con.commit() self.screen.fill(BLACK) self.screen.blit(background, background_rect) all_sprites.draw(self.screen) draw_text(self.screen, str(score), 18, WIDTH / 2, 10) draw_shield_bar(self.screen, 5, 5, player.shield) draw_lives(self.screen, WIDTH - 100, 5, player.lives, player_mini_img) pygame.display.flip() con.close() pygame.quit()