Если я правильно понял ваш вопрос, вы должны сначала получить вектор направления, рассчитав
dir = B - A
, а затем продолжить движение по
C = B + dir
В противном случае, пожалуйста, уточните свойвопрос, например, что вы подразумеваете под «вычислить точки от А до В», потому что математически существует бесконечное количество точек между А и В.
Редактировать: Если вы хотите отследить пулюПуть у вас есть два варианта:
1) Вы реализуете его как hitcan оружие, как сделано во многих FPS;любые выпущенные пули сразу же попадут туда, куда они были направлены.Лучше всего этого добиться, используя трассировку лучей через Ray.Intersects , и, вероятно, это самый простой и наименее вычислительный способ сделать это.Конечно, это также не очень реалистично.
2) Вы делаете пулю физической сущностью в своем мире и перемещаете ее во время вашего вызова Update()
с помощью «нормальной» комбинации вектора текущей позиции и движения / скорости.вектор, делая ручное обнаружение столкновения с любыми хитбольными поверхностями и объектами.Преимущество этого состоит в том, что вы можете реализовать правильную физику, такую как время в пути, падение, трение и т. Д., Однако это также на несколько порядков сложнее реализовать надежным способом.Если вы хотите пойти по этому пути, я предлагаю использовать либо готовый физический API (например, Bullet , но я не уверен, есть ли версия для XNA), либо, по крайней мере, провести обширное исследование Google пообъекта, так что вы можете избежать многих ловушек обнаружения столкновений с быстро движущимися объектами.