def _collision(self, pos, pos2=None, max_distance=ROBOT_RADIUS): """ Logique pour la collision. """ logging.info('Number of object to check: %d', len(self.field_objects)) if pos2 is None: for i in self.field_objects: obj_pos = i distance = get_distance(pos, obj_pos) logging.info('Distance is %d', distance) if distance < 2*max_distance: return True return False else: distance = get_distance(pos, pos2) if distance < 2*max_distance: return True else: return False
def isInsideCircle(iPosition, iCenter, iRadius): ''' isInsideCircle retourne True si la iPosition se trouve à l'intérieur de la zone circulaire de iCenter de rayon iRayon :param iPosition: object Position (RULEngine.Util.Position) :param iCenter: object Position (RULEngine.Util.Position) :param iRadius: int / float :return: bool ''' assert(isinstance(iPosition, Position)) assert(isinstance(iCenter, Position)) assert(isinstance(iRadius, (int, float))) assert(iRadius >= 0) if get_distance(iPosition, iCenter) < iRadius: return True else: return False