Научился: На первом скриншоте показано приближение прямоугольника к кругу своим ребром, на втором скрине видно, что шарик окрасился, т.е. был заражён, но при этом прямоугольник не пересекается своими углами, это потому, что я модернизировал функцию проверки пересечения разных объектов, учёл грани прямоугольников. Если этого не сделать, то маленькие кружки запросто пролетят насквозь больших прямоугольников, если как раз не зацепят их углы.
На видео можно понаблюдать над реализацией.
Так же устранил все утечки памяти и реализовал уборку мусора каждый 5 секунд, это устранило проблемы с постепенным увеличением потребления ОЗУ со временем.
з.ы.
по поводу Интерфейса, это очень удобная вещь, которая определяет общий набор функций для различных объектов, что позволяет взаимодействовать с ними намного удобнее и хранить в общем массиве/списке/множестве... Он гарантирует, что каждый объект имеет необходимый функционал, так как он должен обязательно быть реализован!!!
з.з.ы.
Не согласен, что этот урок показывает как делать нельзя, просто это сложнее и требует доп. ресурсов, но зато это более качественно, чем если бы мы кружки описывали прямоугольником.
Можно создать интерфейс для игр, который хранил бы в себе базовый функционал, это прям напрашивается.
Отличный курс, но маленький, советую каждому пройти его и осмыслить.