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
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()
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})
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