Я пытаюсь заставить моего игрока двигаться от ускорения и скорости. Вот как можно найти скорость, и игрок перемещается:Программирование ускорения в Java
vel.x += acceleration.x;
coordinates.x += vel.x;
В coordinates
управления, где игрок. Вот как рассчитывается ускорение:
if(moveRight && !(acceleration.x >= .1f)){
acceleration.x += .1f * Gdx.graphics.getDeltaTime();
}
Первый вопрос: ли это хороший способ, чтобы переместить игрока, если я буду использовать массу и силу для перемещения игрока.
Я также пытаюсь получить игрока, чтобы прийти к остановке, основанной от ускорения, здесь является расширенная версия приведенного выше кода, где я пытаюсь сделать это:
if(moveRight && !(acceleration.x >= .1f)){
acceleration.x += .1f * Gdx.graphics.getDeltaTime();
}else if(!moveRight && (vel.x > 0)){
acceleration.x -= .1f * Gdx.graphics.getDeltaTime();
}
Однако это Безразлично» т работы. Когда я двигаюсь вперед, он ускоряется вперед, затем, когда я отпускаю, он останавливается, а затем стреляет назад.
Второй вопрос: Как я могу заставить вышеуказанный код работать так, как я хотел.
Спасибо за любую помощь в отношении этих нескольких вопросов.
Я просто скажу это первым: '! (Acceleration.x> = .1f)' is _lot less_ readable, чем просто 'acceleration.x <.1f' IMHO. Второе: можете ли вы быть более конкретным, чем «не работает»? Как результат отличается от ожидаемого? – Arc676
@ Arc676 Я отредактировал вопрос – Luke
Что такое 'movementSpeed'? – Arc676