Да ну нет, тут физикой, хоть как-то относящейся к закону тяготения Ньютона и не пахнет:
Цитата:
|
Пока идея такая: При определённом расстояние объект как бы присоединяется к космическому кораблю, но если у космического корабля скорость станет определённой, то объект, как бы будет отсоединятся. Так же можно сделать касание объектов друг друга, чтобы избежать возможности - несколько объектов выставились в ряд не по периметру, а в одном месте.
|
Тут при расстоянии меньше R надо логически присваивать объекту аттрактор, представляющий собой круг, жёстко привязыанный к центру корабля, а при скорости корабля больше V удалять у всех объектов, зарегеных на атракторе этот аттрактор и ангегить их с него.
Аттрактор "круг" делается достаточно просто, суть такая:
- в каждом кадре смотрим положение объекта относительно этого круга
- если объект за кругом, то направляем скорость внутрь
- если объект внутри круга - наружу
(составляющая, направленная к центру и от цетра тем меньше, чем меньше разница между реальным положением и "орбитой", т.е. Rreal - R)
- тангенциальную составляющую берем по часовой стрелке (к примеру) и делаем тем больше, чем меньше разница Math.abs(Rreal - R)
- массу, ускорение - даже не рассматриваем - это чисто кинематическая задача.
Таким образом объект плавно выходит на круг и никуда с него не девается.
При ускорении корабля они даже будут живенько отставать от него автоматически, если использовать только глобальные координаты
Т.е. в объекте на enterFrame вызываем getV() у текущего назначенного атрактора, и прибавляем ее к нашим координатам - всё!