(Физическая) строка с весом в iOS - PullRequest
4 голосов
/ 07 февраля 2012

Я бы хотел реализовать (физическую) строку с весом в iOS, которая реагирует на ввод акселерометра и сталкивается с границами просмотра.

enter image description here

Какой самый простой способ сделать это? Я бы предпочел избегать использования внешних каркасов, таких как Box2D, если, конечно, нативное решение не слишком сложное.

1 Ответ

10 голосов
/ 07 февраля 2012

Если вам нужно, чтобы оно ускорялось под действием силы тяжести и реально подпрыгивало, когда оно ударялось о край, вам нужно будет использовать физическую среду (если вы не хотите выходить из книги по физике и делать уравнения самостоятельно), поскольку ничего подобного нет встроенный в UIKit.

Я бы рекомендовал вам попробовать Бурундук вместо Box2D . Я обнаружил, что проще использовать с Какао, поскольку это чистый C, а не C ++. Он также имеет оболочку Objective-C, но разработчик платит за нее (простая библиотека C бесплатна).

Вот простой пример физики iPhone Бурундук Я собрал.

Он использует акселерометр и UIKit для рисования - просто замените ящики своими объектами. (Акселерометр не работает в симуляторе, вам придется попробовать его на телефоне).

ОБНОВЛЕНИЕ: теперь вы добавили изображение. Я понимаю, что вы имеете в виду боб на веревочке (я думал, что вы имели в виду UILabel, который падает вокруг экрана, смеется!). Вот другой пример , который включает привязь между ящиками. Если вы используете это плюс Бурундук документы , вы должны быть в состоянии выяснить, что делать.

Вам нужно будет присоединить один конец строки к статическому объекту или конец с бесконечной массой (не включенный в мой пример).

Если вам нужна реалистичная строка, вам нужно разбить ее на несколько коротких ограничений вместо одного длинного, но я предлагаю вам начать с простого, если у вас мало опыта работы с физическими библиотеками.

...