Переключение слоев физических объектов

У меня вопрос по физическим объектам. У меня есть сценарий, в котором на экране есть куча физических объектов, объекты представляют собой круги. Эти объекты разделены на два слоя. Итак, когда у меня есть 100 кругов, 50 находятся в нижнем слое, а 50 — в верхнем. Благодаря этому я создал эффект глубины. Это означает, что объекты в большинстве нижних слоев имеют размытие и меньше. Два слоя НЕ взаимодействуют друг с другом, коллизии происходят только с одними и теми же объектами в одном и том же слое.

Итак, вот кикер. Я хочу, чтобы объекты переключались между слоями, чтобы круги двигались вверх и вниз случайным образом. Это я сделал без проблем, проблема заключается в том, что когда объекты снизу перемещаются вверх на самый верхний слой, когда они находятся под или частично под объектом на самом верхнем слое, у вас возникают скачкообразные движения. Физические объекты должны освободить место для нового объекта, который появляется из ниоткуда.

Вопрос в том, как предотвратить это прыгающее движение? Я хочу, чтобы самые верхние объекты освобождали место для нового объекта, плавно удаляясь от нового объекта.


person Banzboy    schedule 29.08.2013    source источник


Ответы (1)


Не то, что какую из дюжины 3d lib вы используете, а как абстракцию: держите все свои круги в одном слое в представлении, но в коде поместите их в 2 отдельных массива. когда вы переключаете состояния, вы выполняете циклы для двух массивов, например «все круги в этом массиве идут вверх и размываются» и «все круги в его массиве идут вниз и размываются». Вы должны изучить шаблон MVC, чтобы лучше структурировать свои проекты. Вы не поверите, сколько головной боли вы избежите с его помощью. Чистый MVC немного устарел, но хорош. Вы можете найти реализацию 3D MVC, но я сомневаюсь, что она что-то добавляет к основам.

person Discipol    schedule 29.08.2013
comment
Все, что вы описали, я на самом деле уже сделал. Великие умы думают одинаково. - person Banzboy; 30.08.2013
comment
Я не понимаю, что вы имеете в виду под прыгающими движениями. Используйте сглаз, чтобы записать происходящее, возможно, мы поймем лучше. - person Discipol; 30.08.2013