Цель C Game Geometry вопрос - PullRequest
1 голос
/ 21 марта 2011

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

Допустим, у меня есть экран iPad.Положение xy объекта в один данный момент времени и положение xy в другой момент времени сохранено в 2 переменных.

Вопрос: как найти третью позицию объекта в конце экрана с учетом предыдущих двух позиций, учитывая, что объект движется в одном направлении (линии) от точки 1 к точке 2.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

Пусть у нас есть v1 и v2 - векторы, представляющие две точки. Пусть t0 будет временем между двумя точками. Пусть t будет текущим временем.

Тогда наш вектор местоположения v3 задается как v3 = v1 + (v2 - v1)t/t0

0 голосов
/ 21 марта 2011

Если объект движется в том же направлении, и у вас есть горизонтальная линия, следующая позиция, заданная x и y, будет

x+1, y

Если объект движется в том же направлении по вертикальной линии, это будет

x, y+1

Если объект движется по диагонали вверх-вправо

x+1,y+1

диагональ вниз-вправо

x+1, y+1

Диагональ вниз-влево

x-1, y-1

Диагональ вверх-влево

x-1, y+1

Так что-то общее было бы:

newPosition = (x+1,y) //if you wish to move forward to the right, try to handle all    
                        cases

Все приведенные выше случаи работают, если объект движется вперед, если он движется назад, просто измените + на -. По сути, объект воспринимается как движущийся в декартовой системе координат, где x горизонтальный, а y вертикальный.

Я думаю, вы можете понять из этих трех случаев;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...