Я работаю над игрой, в которой вы управляете требушетом, чтобы бросать шары противнику.
Это как игра под названием «Средневековая осада». Когда карабин поворачивает руку, игрок должен использовать наилучший момент, чтобы нажать кнопку и отпустить мяч. Тогда мяч полетит под углом касания. Моя проблема сейчас заключается в том, что рука требучета качается слишком быстро, чтобы игрок мог воспользоваться нужным моментом. Между тем он должен быть таким быстрым, иначе он не может бросить достаточно далеко. И есть крошечная нить, соединяющая шар и рукоятку требушета: если рука качается слишком медленно, шар просто висит на струне, когда рука движется.
Я решаю проблему, переключая размер шага, и, когда рука поворачивается, я меняю размер шага с 1/60 до 1/200. И как только игрок отпускает мяч, он возвращается к 1/60.
Это работает довольно хорошо, за исключением того, что моя игра для многопользовательской игры с сетью. Таким образом, изменение шага может вызвать проблемы.
Другое решение, которое я могу придумать, - позволить ему медленно качаться, но когда игрок отпускает мяч, я вручную добавляю скорость мячу, сохраняя его направление. Мне не очень нравится это решение, потому что оно выглядит фальшивым, и у меня все еще есть проблема, что мяч просто висит на струне, если я не сделаю струну очень очень короткой ..
Пожалуйста, пролите немного света на это, спасибо!
РЕДАКТИРОВАТЬ
Спасибо всем за участие, я решаю проблему, делая медленный поворот руки, а когда игрок отпускает мяч, беру скорость мяча и раз два. Это выглядит точно так же, как изменение размера шага. Есть только одна дополнительная вещь, которую мне нужно сделать. Поскольку рука качается очень медленно, мяч просто висит на конце руки, а не качается. Я решил это, применяя силу, равную гравитационной силе на шар во время и только во время периода качания. Тогда он больше не висит там, а раскачивается вместе с рукой.
Ответ @MrCranky подробный и выглядит выполнимым, поэтому я бы его принял. :)