def check_collisions(self): collisions = PixelPerfect.spritecollide_pp(self.player, self.powerup_sprites, 0) for powerup in collisions: if not powerup.fading: if not self.player.dying: self.health.add() powerup.pickup() collisions = PixelPerfect.spritecollide_pp(self.player, self.mine_sprites, 0) for mine in collisions: if not mine.exploding: if not self.player.dying: self.damage_player() mine.explode() collisions = PixelPerfect.spritecollide_pp(self.player, self.shark_sprites, 0) for shark in collisions: if not shark.dying: if not self.player.dying: self.damage_player() shark.die() collisions = PixelPerfect.spritecollide_pp(self.player, self.cannonball_sprites, 0) for cb in collisions: if not self.player.dying: self.damage_player() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) if (Variables.sound): Mine.sound.play() # Umm... the mine has a nice explosion sound. collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.shark_sprites, 0, 0) for cb in dict.keys(collisions): for shark in collisions[cb]: # The test on cb.vect is a rude hack preventing cannonballs from pirate ships from killing sharks. if not shark.dying and cb.vect[0] > 0: self.score.add(15) shark.die() # give her a part of ball's momentum: shark.dx+=cb.vect[0]*0.6 shark.dy+=cb.vect[1]*0.4 if not cb.special: self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.seagull_sprites, 0, 0) for cb in dict.keys(collisions): for seagull in collisions[cb]: # cb.vect test is a rude hack preventing pirates from killing seagulls if not seagull.dying and cb.vect[0] > 0: self.score.add(75) seagull.die() # give her a part of ball's momentum: seagull.vect[0]+=cb.vect[0]*0.4 seagull.vect[1]+=cb.vect[1]*0.4 if not cb.special: self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.pirate_sprites, 0, 0) for cb in dict.keys(collisions): for pirate in collisions[cb]: # cb.vect hack for preventing pirates from killing each other if not pirate.dying and cb.vect[0] > 0: if (Variables.sound): Mine.sound.play() # Umm... the mine has a nice sound. self.score.add(25) pirate.damage() for i in range(6): self.particles.add_wood_particle((pirate.rect.centerx+rrr(-0,15), pirate.rect.centery+rrr(-10,20))) if not cb.special: self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break if self.titanic: collisions = PixelPerfect.spritecollide_pp(self.titanic, self.cannonball_sprites, 0) for cb in collisions: if not self.titanic.dying and cb.vect[0] > 0: if (Variables.sound): Mine.sound.play() if cb.special: #special round is hard to fire, so lets reward our crafty player self.titanic.damage(12) self.score.add(100) else: self.score.add(7) self.titanic.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break
def check_damage(self, opponent): if PixelPerfect._pixelPerfectCollisionDetection(self, opponent): hp=1 self.health_bar.lose_health(hp)
def check_collisions(self): collisions = PixelPerfect.spritecollide_pp(self.player, self.powerup_sprites, 0) for powerup in collisions: if not powerup.fading: if not self.player.dying: self.health.add() powerup.pickup() collisions = PixelPerfect.spritecollide_pp(self.player, self.mine_sprites, 0) for mine in collisions: if not mine.exploding: if not self.player.dying: self.health.damage() mine.explode() collisions = PixelPerfect.spritecollide_pp(self.player, self.shark_sprites, 0) for shark in collisions: if not shark.dying: if not self.player.dying: self.health.damage() shark.die() collisions = PixelPerfect.spritecollide_pp(self.player, self.cannonball_sprites, 0) for cb in collisions: if not self.player.dying: self.health.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) Mine.sound.play() # Umm... the mine has a nice explosion sound. collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.shark_sprites, 0, 0) for cb in dict.keys(collisions): for shark in collisions[cb]: # The test on cb.vect is a rude hack preventing cannonballs from pirate ships from killing sharks. if not shark.dying and cb.vect[0] > 0: self.score.add(15) shark.die() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.seagull_sprites, 0, 0) for cb in dict.keys(collisions): for seagull in collisions[cb]: # cb.vect test is a rude hack preventing pirates from killing seagulls if not seagull.dying and cb.vect[0] > 0: self.score.add(75) seagull.die() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.pirate_sprites, 0, 0) for cb in dict.keys(collisions): for pirate in collisions[cb]: # cb.vect hack for preventing pirates from killing each other if not pirate.dying and cb.vect[0] > 0: Mine.sound.play() # Umm... the mine has a nice sound. self.score.add(25) pirate.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break if self.titanic: collisions = PixelPerfect.spritecollide_pp(self.titanic, self.cannonball_sprites, 0) for cb in collisions: if not self.titanic.dying and cb.vect[0] > 0: Mine.sound.play() self.score.add(7) self.titanic.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break
def check_collisions(self): collisions = PixelPerfect.spritecollide_pp(self.player, self.powerup_sprites, 0) for powerup in collisions: if not powerup.fading: if not self.player.dying: self.health.add() powerup.pickup() collisions = PixelPerfect.spritecollide_pp(self.player, self.mine_sprites, 0) for mine in collisions: if not mine.exploding: if not self.player.dying: self.health.damage() mine.explode() collisions = PixelPerfect.spritecollide_pp(self.player, self.shark_sprites, 0) for shark in collisions: if not shark.dying: if not self.player.dying: self.health.damage() shark.die() collisions = PixelPerfect.spritecollide_pp(self.player, self.cannonball_sprites, 0) for cb in collisions: if not self.player.dying: self.health.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) Mine.sound.play( ) # Umm... the mine has a nice explosion sound. collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.shark_sprites, 0, 0) for cb in dict.keys(collisions): for shark in collisions[cb]: # The test on cb.vect is a rude hack preventing cannonballs from pirate ships from killing sharks. if not shark.dying and cb.vect[0] > 0: self.score.add(15) shark.die() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.seagull_sprites, 0, 0) for cb in dict.keys(collisions): for seagull in collisions[cb]: # cb.vect test is a rude hack preventing pirates from killing seagulls if not seagull.dying and cb.vect[0] > 0: self.score.add(75) seagull.die() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break collisions = PixelPerfect.groupcollide_pp(self.cannonball_sprites, self.pirate_sprites, 0, 0) for cb in dict.keys(collisions): for pirate in collisions[cb]: # cb.vect hack for preventing pirates from killing each other if not pirate.dying and cb.vect[0] > 0: Mine.sound.play() # Umm... the mine has a nice sound. self.score.add(25) pirate.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break if self.titanic: collisions = PixelPerfect.spritecollide_pp(self.titanic, self.cannonball_sprites, 0) for cb in collisions: if not self.titanic.dying and cb.vect[0] > 0: Mine.sound.play() self.score.add(7) self.titanic.damage() self.cannonballs.remove(cb) self.cannonball_sprites.remove(cb) break