Цитата:
Сообщение от TennisAdept
А флаг вводить зачем, если результат CollisionLineFromTRECT и так логический?
|
Флаг для того, что бы отделить логику принятия решения от кода проверки.
Флаг инициализируется значением, которое говорит, что коллизий нет.
Далее в цикле идет проверка на коллизии и на каждой итерации значение флага обновляется. Если коллизия найдена, то происходит прерывание цикла проверки.
Теперь имеем 2 ситуации при проверке - есть коллизии или их нет.
Как после цикла проверки узнать, были ли коллизии или нет? Вот тут мы снова возаращаемся к флагу.
В принципе, твоя реализация тоже будет работать. Но она более запутанная, хотя и делает все тоже самое. Т.О. путем введения всего лишь одного флага мы делаем код более читабельным, что помогает в отладке.
Например, мне потребовалось около 5 минут что бы понять, что делает твой код и проанализировать где там может быть проблема. В моей редакции, надеюсь, тебе потребовалось меньше минуты.