Данный объект, который может двигаться вперед, назад, влево и вправо в заданной точке X, Y.Как эффективно направить объект в точку X, Y, используя данную механику движения наиболее эффективным и естественным для человека способом.
Объект доступен для движения в режиме реального времени, вы можете сказать им «startMoving |Направление | () "и" stopMoving | Направление | () ".Хотя в качестве дополнительного поворота и части, с которой у меня возникают проблемы, это то, что облицовка объекта никогда не известна, известно только его текущее местоположение, поэтому алгоритм должен «определять» направление.Местоположение объекта обновляется в отдельном потоке с интервалом 500-1 с.«Запрос» на обновление местоположения в алгоритме выполняется в любой момент, но он не доступен сразу, и алгоритм должен учитывать это.Делать что-то вроде requestAndWaitForCoordUpdate () вполне приемлемо, но, вероятно, не нужно.
Кроме того, никаких препятствий не появляется, можно предположить, что вы находитесь на САМОЙ открытой плоскости, отклоняясь от прямой прямой линии междупути, и вы можете столкнуться с препятствиями.Можно с уверенностью предположить, что 1/4 расстояния между целью и источником должно быть доступно по ширине на данном прямом пути.
Я также хотел бы отметить, что я не уверен, что A * применяется в этом сценарии, еслиэто я не уверен, как реализовать это с учетом ограничений.Единственная реальная переменная здесь - это внешний вид объекта.
Вот пример кода:
public int[] currentCoords;
public void movement() {
currentCoords[0] = 1005; // starting y coord
currentCoords[1] = 1007; // starting x coord
moveTo(1050, 1025);
}
public void moveTo(int x, int y) {
... how?
}
public void threadUpdatingCoords() {
... periodically check for source coord updates
... between 200ms and 1000ms apart.
}