MrKerbMan, Объекты круглые? Тогда при просчете следующего положения создавать виртуальный прямоугольник длиной равной перемещению объекта и шириной, равной диаметру круга. Собственно, нужен не сам прямоугольник, а координаты его вершин. Зная размер и положение объекта, направление и величину его скорости, можно без труда найти эти координаты. Так вот, в конце каждого кадра проверять на пересечения эти прямоугольники(я точно не помню алгоритм, поищи сам, но он весьма элементарен, особенно для 2д и не ест много ресурсов). Нет пересечения - все спокойно, можно давать следующий кадр. Есть - возможны пересечения и тут нужно рассматривать отдельно эти объекты на предмет столкновения. Для этого разбить виртуально кадр на гораздо меньшие куски времени и на каждом куске мерять расстояние между центрами двух объектов. Как только это расстояние меньше либо равно сумме диаметров объектов - поздравляю, имеем столкновение, причем известно точное его время и положения объектов - считай не хочу новые траектории. Более того, учитывая линейность движений внутри кадра, как только расстояние начнет увеличиваться, дальше можно не считать, ибо столкновения не будет. Недостатком модели есть то, что один объект за один кадр не сможет столкнуться больше чем один раз. Достоинство - с прямыми руками кодера, даже калькулятор потянет расчет.
Как интересно!
А что насчёт этого:
У меня предложение: можно искать точку пересечения векторов скорости, ставить в эту точку тело, по пропорциям искоть точку другого тела и проверять столкновения. Только хрен знает, что меделенней.
Недостатком модели есть то, что один объект за один кадр не сможет столкнуться больше чем один раз.
Циклы всё исправят!