Как лучше реализовать камеру в Box2d, которая следует за объектом. Пробовал SetPosition для каждого объекта, но все начинает дергаться и спрайты начинают отставать. Почитал темы на этом форуме, ничего дельного не нашёл. (использую js версию, если что)
Какое отношение камера имеет к Box2D? Получи позицию объекта, присвой её камере и всё, ну минимально всё.
Да, такой ответ уже видел, но мне абсолютно не понятен) Что значит присвоить камере? Если имеется ввиду двигать только спрайты, а объекты будут уходить за пределы экрана, то не подойдет. Все же спасибо за скорый ответ.
Еще вопрос, куда по уму, должна быть направлена гравитация, у меня она положительная и все падает вниз, как надо.
Ps видел демки, где и камера за объектом следует и зум есть.
Pss вот, например, как здесь работает камера, есть какие-то pos_x/pos_y и x/y, но не видно где используются.
Как работает камера? Нужно понимать как работает камера в приложениях. Камера задает некое смещение относительно какой-то точки, например начала координат.
Обьекты в мире расположены в разных его частях и соответственно если они за границами экрана, то они не видны если в области экрана, то видны(их спрайты).
Если ты к каждому спрайту будешь добавлять\вычитать смещение по обеим координатам, то они начнут двигаться - это самое элементарное описание "камеры".
Можно смещать камеру на 1, можно на 100. То как смещается камера влияет на "красоту" отображения игровых обьектов.
В боксе камера какраз и задает эту красоту, но сперва разберись с тем, что я написал выше, когда поймешь, тогда и исчезнет твой вопрос.
Гравитация???? Ну как бы вниз) Я ставлю обычно b2Vec2(0.0f, 9.8f); Это вниз. Вниз у+.
Глянул мельком на pos_x/pos_y и x/y. Это похоже на координаты снаряда для обработки его "камерой". Там if стоят, это и есть обработка камеры. В коде на сайте отображена наверно часть общего кода, в ней нет использования этих переменных... Эти переменные используются при отображении, непосредственно спрайтам приплюсовываются эти смещения...
Спасибо, как я понимаю двигать нужно только спрайты, а DrawDebugData оставить жить своей жизнью.
Все правильно понял)
Тема в архиве.
Тема закрыта.