Есть десятки способов, которыми я мог бы сформулировать этот вопрос, но, чтобы держать свои мысли в одном ряду, я формулирую его в соответствии с моей проблемой.
Поэтому я создаю плавающую платформу, которую я хотел бы иметь, чтобы иметь возможность просто перемещаться из одной назначенной точки в другую, а затем возвращаться обратно в первую и просто проходить между ними по прямой линии. Однако, чтобы сделать его немного более интересным, я хочу добавить несколько правил для платформы.
- Я кодирую его для перемещения кратных целых значений тайлов мировых данных. Таким образом, если платформа не является стационарной, то она будет перемещаться как минимум на одну ширину плитки или высоту плитки.
- В пределах одной длины плитки я бы хотел, чтобы он ускорялся от остановки до заданной максимальной скорости.
- Достигнув расстояния в одну плитку, я бы хотел, чтобы он замедлился до остановки при заданной координате плитки, а затем повторил процесс в обратном порядке.
Первые две части не так уж сложны, по сути, у меня проблемы с третьей частью. Мне бы хотелось, чтобы платформа остановилась точно на координате плитки, но, поскольку я работаю с ускорением, казалось бы, легко начать применять ускорение в противоположном направлении к значению, хранящему текущую скорость платформы, как только она достигнет длины одной плитки. расстояния (если предположить, что плитка перемещается более чем на одну длину плитки, но для простоты, давайте просто предположим, что это так) - но тогда возникает вопрос: каково будет правильное значение для увеличения ускорения для получения этого эффекта? Как бы я найти это значение?
acceleration = desired_velocity - currentVelocity
затем примените это ускорение, как обычно. Я создам ответ чуть позже, показывая, что я делаю.