Example #1
0
    def checkForCollision(self):
        self.__collisionPoints.clear()
        self.__collisions.clear()

        # for enemy in self.__enemies:
        #    if enemy.getRect().colliderect(self.__tank.getRect()):
        #        print(f"Enemy {enemy.getEnemyId()} brought your tank down")
        #        enemy.setActive(False)
        #        self.__scoreCard.loseLife()

        for missile in self.__missiles:
            if missile.getRect().top <= 5:
                missile.setActive(False)
                print(f"Missile {missile.getMissileId()} missed")

        for enemy in self.__enemies:
            if enemy.getRect().bottom >= (self.__graphics.getFieldSize()[1] -
                                          5):
                enemy.setActive(False)
                print(f"Enemy {enemy.getEnemyId()} attached your fort")
                self.__scoreCard.loseLife()

        for missile in self.__missiles:
            if missile.isActive():
                for enemy in self.__enemies:
                    if enemy.isActive():
                        if missile.getRect().colliderect(enemy.getRect()):
                            # print(f"Missile {missile.getMissileId()} at {missile.getRect()} collides with Enemy "
                            #      f"{enemy.getEnemyId()} at {enemy.getRect()}")
                            # print(missile.getRect())
                            # print(enemy.getRect())
                            missile.setActive(False)
                            enemy.setActive(False)
                            # print("Collision")
                            # collisionPosition = (missile.getRect()[0], missile.getRect()[1])
                            collisionPoint = ((int(enemy.getRect().left +
                                                   missile.getRect().left) /
                                               2),
                                              (int(enemy.getRect().bottom +
                                                   missile.getRect().top) / 2))
                            self.__missiles.remove(missile)
                            self.__enemies.remove(enemy)
                            collision = Collision()
                            collision.setCollisionPoint(collisionPoint)
                            self.__collisionPoints.append(collisionPoint)
                            self.__collisions.append(collision)