def update(self): GameObject.update(self) self.x += self.dx self.y += self.dy for game_object in game_objects: if type(game_object) == Wall: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: pygame.mixer.Channel(6).play( pygame.mixer.Sound("music/player/Boom.wav")) self.deactivate() for game_object in game_objects: if type(game_object) == Enemy or type(game_object) == Enemy1: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: pygame.mixer.Channel(6).play( pygame.mixer.Sound("music/player/Boom.wav")) game_object.hp += -self.dam if game_object.hp <= 0: gamelevel.append("*") enemy_explosion = EnemyExplosion( game_object.x, game_object.y, game_object.dx, game_object.dy, game_object._type) add(enemy_explosion) game_object.deactivate() self.deactivate()
def check_overlap(self): for game_object in game_objects: if type(game_object) == Wall: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: self.overlap = True
def check_overlap_with_enemy(self): for game_object in game_objects: if type(game_object) == Enemy or type(game_object) == Enemy1: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: self.lose() for game_object in game_objects: if type(game_object) == BulletEnemy or type( game_object) == BulletTank: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: self.hp += -game_object.dam game_object.deactivate() if self.hp <= 0: self.lose()
def update(self): GameObject.update(self) if not self.overlap: for game_object in game_objects: if type(game_object) == Player: self.overlap = BoxCollider.overlap( self.box_collider, game_object.box_collider) if self.overlap: self.deactivate() pygame.mixer.Channel(0).play( pygame.mixer.Sound( "music/player/player_get_coin.wav")) game_object.count_coin += 1
def update(self): GameObject.update(self) if not self.overlap: for game_object in game_objects: if type(game_object) == Player: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap and game_object.count_coin == 7: self.overlap = True game_object.can_shoot = True if self.overlap: image_urls = ["assets/images/sprite/gift/gift_close.png", "assets/images/sprite/gift/gift_opening.png", "assets/images/sprite/gift/gift_open.png"] self.renderer = Animation(image_urls,False) self.renderer = ImageRenderer("assets/images/sprite/gift/gift_open.png") enemy_tower = EnemyTower(10*16+8, 15*16) add(enemy_tower)
def update(self): GameObject.update(self) self.renderer.update(self.dx, self.dy, self.die) self.box_collider.y = self.y + self.dy for game_object in game_objects: if type(game_object) == Wall: overlap = BoxCollider.overlap(self.box_collider, game_object.box_collider) if overlap: self.overlap = True if self.overlap: self.dy = -self.dy self.y += self.dy self.overlap = False self.box_collider.y = self.y
from physics.box_collider import BoxCollider b1 = BoxCollider(10, 10) b2 = BoxCollider(12, 48) b1.y = 100 print(b1.overlap(b2))https://www.dropbox.com/s/y707tmuixan3xmr/C4T%20-%20Online%20-%20Collision%20-%202018-06-20-4.pptx?dl=0