Как рассчитать направление объекта в форме окна, который должен перейти к другому объекту? - PullRequest
0 голосов
/ 19 мая 2018

Я сейчас программирую небольшую игру в форме окна, в которую я хочу добавить врага, который движется по прямой дороге к игроку.У меня есть местоположение игрока и местоположение противника.Я хочу получить следующее местоположение врага, которое находится всего в 3-5 пикселях от старого.Как мне это рассчитать?

1 Ответ

0 голосов
/ 19 мая 2018

Итак, у вас есть два Location.сначала для источника, а затем для цели.

вы должны предположить счетчик итераций.сказать, что Объект должен достичь цели с шагом X.

, поэтому первым делом нужно вычислить DeiffX и DiffY.

 double DiffX = (Target.X - Source.X);
 double DiffY = (Target.Y - Source.Y);

, а на следующем мы можем сказать:

 int Step = (int)Math.Max(DiffY,DiffX);

для каждой итерации мы должны добавить какое-то значение к текущему местоположению, так:

 double DeltaX = DiffX/Step;
 double DeltaY = DiffY/Step;

и на последнем шаге:

 for (int i = 0; i<Step; i++)
 {
   Object.Location = new Point(Object.Location.X+ (int)DeltaX , Object.Location.Y + (int)DeltaY); 
 }    

для калибровки результата:

 Object.Location = Target.Location;

(это потому, что наши расчеты имеют некоторые десятичные дроби)

...