2013-07-10 3 views
4

Я разрабатываю игру с libgdx в первый раз. Я использую этот код, чтобы установить линейную скорость моего объекта шагового мираЛинейная скорость Libgdx не работает

world.step(Gdx.app.getGraphics().getDeltaTime(), 6, 2); 

установки скорости

body.setLinearVelocity(new Vector2(new Vector2(100, 100))); 

тела устанавливается быть динамичным, но не достаточное движение объекта.

vX = 100 слишком низкий?

+2

Вы устанавливаете скорость один или каждый раз? И, не отправляйте delta time в world.step. Используйте фиксированный временной шаг. – Pavel

+1

body.setLinearVelocity (новый Vector2 (новый Vector2 (100, 100))); wot вы ожидаете форму этого – Pranav008

ответ

5

Если ширина и высота игры слишком велик, как 800x480 или что-то затем разделить его на 40, как ... 20x12 ....

это потому, что box2d скорость ограничена до 2 единиц. и то, что вы хотите, больше единиц за шаг в секунду, но ваш экран слишком велик, чтобы достичь этого. Поэтому, если вы сократите свой мир, тогда проблема скорости будет решена.

+0

моя ширина и высота игры 800 и 400. Как сократить мир? –

+0

@ShidilDinesh предположим, что в настоящее время ваш размер корпуса box2d составляет 80 * 40, чтобы этот размер был равен 80/40f и 40/40f, это сделало бы размер объектов небольшим в мире. сделайте каждый размер тела деленным на постоянный коэффициент. Также сделайте камеру размером 800/40f и 40/40f, это решит вашу проблему. –

+0

@ShidilDinesh каждый элемент, который вы используете в box2d, должен быть разделен на постоянное значение, например. гравитация также должна быть разделена на тот же коэффициент, который вы использовали для сокращения мира. –

Смежные вопросы