def handle_collisions(self):
		print 'Buoc 2'
		# neu xe tang dung trung vat bom mau hay ammo thi tang mau cho xe tang, xoa' vat bom mau, tang dan. , xoa' dan.
		upgrade_hit_list = pygame.sprite.spritecollide(self.player, self.upgrades_sprite_list, False)
		for upgrade in upgrade_hit_list:
			if upgrade.get_name() == "health":
				self.p1_hp += upgrade.healthboost
				upgrade.kill()
			elif upgrade.get_name() == "ammo":
				self.player.ammo += upgrade.ammoboost
				upgrade.kill()

		# neu xe tang dung trung ke dich, xoa' ke dich, tang score, lam` hieu. ung' no?, giam mau' ke thu
		enemy_hit_list = pygame.sprite.spritecollide(self.player, self.enemy_sprite_list, False)
		for enemy in enemy_hit_list:
			self.p1_core += self.enemy_hp
			self.p1_hp -= 100
			ex_obj = game_items.Explosion(self.screen, enemy.rect.centerx, enemy.rect.centery, "big")
			self.explosions_sprite_list.add(ex_obj)
			self.all_sprite_list.add(ex_obj)
			enemy.kill()

		# neu' enemy bi het' mau' thi no?
		# lap. tung` enemy va` lap. tung` cuc. dan. cua? enemy
		for enemy in self.enemy_sprite_list:
			if enemy.hp <= 0:
				ex_obj = game_items.Explosion(self.screen, enemy.rect.centerx, enemy.rect.centery, "big")
				self.explosions_sprite_list.add(ex_obj)
				self.all_sprite_list.add(ex_obj)
				enemy.kill()
			# neu dan. cua dich. trung ta.
			bullets_hit_list = pygame.sprite.spritecollide(self.player, enemy.bullets_sprite_list, False)
			for bullet in bullets_hit_list:
				ex_obj = game_items.Explosion(self.screen, bullet.rect.centerx, bullet.rect.centery, "small")
				self.explosions_sprite_list.add(ex_obj)
				self.all_sprite_list.add(ex_obj)
				bullet.kill()
				self.p1_hp -= 25
			# check neu' cua? ta trung dich
			bullet_hit_list = pygame.sprite.spritecollide(enemy, self.player.bullets_sprite_list, False)
			for bullet in bullet_hit_list:
				ex_obj = game_items.Explosion(self.screen, bullet.rect.centerx, bullet.rect.centery, "small")
				self.explosions_sprite_list.add(ex_obj)
				self.all_sprite_list.add(ex_obj)
				enemy.hp -= 10
				self.p1_core += 100
				bullet.kill()
	def handle_collisions(self):
		if self.player.hp <= 0: # player die
				self.player.kill()
		# enemy
		for enemy in self.enemy_sprite_list: # enemy die
			if enemy.hp <= 0:
				self.enemy_number -= 1
				enemy.kill()
			# neu dan. cua dich. trung ta.
			bullets_hit_list = pygame.sprite.spritecollide(self.player, enemy.bullets_sprite_list, False)
			for bullet in bullets_hit_list:

				if self.game.can_play_music:
					self.game.music.play_music("player_hit")

				ex_obj = game_items.Explosion(self.player)
				self.explosions_sprite_list.add(ex_obj)
				self.all_sprite_list.add(ex_obj)
				bullet.kill()
				self.player.hp -= 1
			# check neu' cua? ta trung dich
			bullet_hit_list = pygame.sprite.spritecollide(enemy, self.player.bullets_sprite_list, False)
			for bullet in bullet_hit_list:
				ex_obj = game_items.Explosion(enemy)
				self.explosions_sprite_list.add(ex_obj)
				self.all_sprite_list.add(ex_obj)
				enemy.hp -= 1
				bullet.kill()

		# vat dung. ho~ tro. cho nhan vat
		upgrades_hit_list = pygame.sprite.spritecollide(self.player, self.upgrades_sprite_list, False)
		for upgrade in upgrades_hit_list:
			if upgrade.get_name() == "power":
				self.is_power = True
				upgrade.kill()

		snake_list = pygame.sprite.spritecollide(self.player, self.snakes_sprite_list, False)
		if self.player.can_hurt:
			for snake in snake_list:
				if self.game.can_play_music:
					self.game.music.play_music("player_hit")
				self.player.hp -= 1
				self.player.can_hurt = False
Пример #3
0
    def frameDisplay(self, screen):
        """ Display everything to the screen for the game. """
        #screen.fill(design.GREEN)
        #dsign.makeWalls(screen)
        font = pygame.font.SysFont("sans-serif", 80)
        screen.blit(design.background, [0, 0])
        text0 = font.render("Lvl. "+str(design.difficulty),True,design.RED)
        #font.init()
        lowLeftX = (150 // 2) - (text0.get_width() // 2)
        lowLeftY = (720 // 2) - (text0.get_height() // 2)
        screen.blit(design.background, [0, 0])
        screen.blit(text0, [lowLeftX, lowLeftY])
        for enemy in self.enemy_list:
            enemy.enemyBar(screen,enemy.rect.x,enemy.rect.y)
        self.player.playerBar(screen,self.player.rect.x,self.player.rect.y)
        #pygame.draw.rect(screen,design.BLUE,pygame.Surface.Rect,50)

        if self.game_over:
            design.drawBackground(design,screen)
            # font = pygame.font.Font("Serif", 25)
            # font = pygame.font.SysFont("sans-serif", 50)
            if design.gameWon :
                design.soundwin.play()
                text = font.render("You won!!! click to continue",True,design.BLACK)

            else :
                text = font.render("Game Over, click to restart", True, design.BLACK)
                design.difficulty = 1
            center_x = (design.SCREEN_WIDTH // 2) - (text.get_width() // 2)
            center_y = (design.SCREEN_HEIGHT // 2) - (text.get_height() // 2)

            for enemy in self.enemy_list:
                enemy.kill()
            self.player.kill()
            screen.blit(text, [center_x, center_y])

        if not self.game_over:
            self.all_sprites_list.draw(screen)

        pygame.display.flip()
Пример #4
0
def delete_if_off_screen(self, enemy):
    """Removes enemy from sprite groups if 500 pixels left off the screen,
        underneath the bottom of the screen, or right of the screen if shell"""
    if enemy.rect.x < (self.viewport.x - 300):
        enemy.kill()

    elif enemy.rect.y > (self.viewport.bottom):
        enemy.kill()

    elif enemy.state == st.SHELL_SLIDE:
        if enemy.rect.x > (self.viewport.right + 500):
            enemy.kill()
    def handle_collisions(self):
        if self.player.hp <= 0:  # player die
            self.player.hp = 0
            self.player.track.kill()
            self.player.barrel.kill()
            self.player.kill()

        if self.player_network.hp <= 0:
            self.player_network.hp = 0
            self.player_network.track.kill()
            self.player_network.barrel.kill()
            self.player_network.kill()

            # enemy
        for enemy in self.enemy_sprite_list:  # enemy die
            if enemy.hp <= 0:
                # khi giet duoc 1 con thi send cho
                self.game.Send({"action": "EnemyNumber", "id": self.game.index_player})
                enemy.kill()

                # neu dan. cua dich. trung ta.
            bullets_hit_list = pygame.sprite.spritecollide(self.player, enemy.bullets_sprite_list, False)
            for bullet in bullets_hit_list:
                if self.game.can_play_music:
                    self.game.music.play_music("player_hit")
                ex_obj = game_items.Explosion(self.player)
                self.explosions_sprite_list.add(ex_obj)
                self.all_sprite_list.add(ex_obj)
                bullet.kill()
                self.player.hp -= 1

            bullets_hit_list = pygame.sprite.spritecollide(self.player_network, enemy.bullets_sprite_list, False)
            for bullet in bullets_hit_list:
                ex_obj = game_items.Explosion(self.player)
                self.explosions_sprite_list.add(ex_obj)
                self.all_sprite_list.add(ex_obj)
                bullet.kill()
                # self.player_network.hp -= 1

                # check neu' cua? ta trung dich
            bullet_hit_list = pygame.sprite.spritecollide(enemy, self.player.bullets_sprite_list, False)
            for bullet in bullet_hit_list:
                ex_obj = game_items.Explosion(enemy)
                self.explosions_sprite_list.add(ex_obj)
                self.all_sprite_list.add(ex_obj)
                enemy.hp -= 1
                bullet.kill()

                # vat dung. ho~ tro. cho nhan vat
        upgrades_hit_list = pygame.sprite.spritecollide(self.player, self.upgrades_sprite_list, False)
        for upgrade in upgrades_hit_list:
            if upgrade.get_name() == "power":
                self.player.is_power = True
                upgrade.kill()

                # vat dung. ho~ tro. cho nhan vat
        upgrades_hit_list = pygame.sprite.spritecollide(self.player_network, self.upgrades_sprite_list, False)
        for upgrade in upgrades_hit_list:
            if upgrade.get_name() == "power":
                # self.player_network.is_power = True
                upgrade.kill()

        snake_list = pygame.sprite.spritecollide(self.player, self.snakes_sprite_list, False)
        if self.player.can_hurt:
            for snake in snake_list:
                if self.game.can_play_music:
                    self.game.music.play_music("player_hit")
                self.player.hp -= 1
                self.player.can_hurt = False

                # send server HP cua nhan vat chinh
        self.game.Send({"action": "HP", "hp": self.player.hp, "id": self.game.index_player})
Пример #6
0
			nextLevel()
		for projectile_ in projectile_list:
			if projectile_.rect.x < SCREEN_WIDTH+50 or projectile_.rect.y < SCREEN_HEIGHT+50:
				#Move projectile
				projectile_.move(mouseX-10,mouseY-10,projectile_.projectile_type)

				#Check collision, removes enemies
				enemy_hit_list = pygame.sprite.spritecollide(projectile_,enemy_list,False, pygame.sprite.collide_circle)

				#Remove projectiles
				for enemy in enemy_hit_list:
					if enemy.hitpoints >0:
						enemy.LoseHealth(projectile_.dmg)
					else:
						SCORE += enemy.getScore()
						enemy.kill()
						enemy_list.remove(enemy)
						all_sprites_list.remove(enemy)
						wizard_.Gain()
					
					projectile_list.remove(projectile_)
					all_sprites_list.remove(projectile_)
					projectile_.reset()
			if projectile_.rect.x > SCREEN_WIDTH+50 or projectile_.rect.y > SCREEN_HEIGHT+50:
				projectile_list.remove(projectile_)
				all_sprites_list.remove(projectile_)
				projectile_.reset()

		for enemy in enemy_list:
			if enemy.rect.x > 40:
				enemy.rect.x -=ENEMYSPEED