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)