враги и склоны - PullRequest
       16

враги и склоны

0 голосов
/ 07 августа 2009

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

1 Ответ

1 голос
/ 07 августа 2009

Если вы хотите двигаться по прямой линии между точками, то вы можете рассчитать дельту X и дельту Y как:

DX = X2-X1;
DY = Y2-Y1;

Тогда, если вы хотите переместить определенное расстояние (скорость / кадр), нормализуйте длину, используя теорему Пифагора:

HYP = DX*DX + DY*DY;
HYP = sqrt(HYP);
DX = MoveD * DX/HYP;
DY = MoveD * DY/HYP;

Тогда:

// Move Distance (MoveD) From X1,Y1 to X2,X2 each screen update.
if ((abs(X2-X)<DX)&&(abs(Y2-Y)<DY))
{
  X = X + DX;
  Y = Y + DY;
} else
// STOP

«Swooping» может быть выполнен путем динамического изменения конечной точки. Начните с конечной точки перед «Целью» и двигайтесь через цель и вверх, чтобы создать «крутое» движение. Добавьте «Смещение скорости», чтобы оно ускоряло движение вниз и замедляло движение вверх.

Это также может быть добавлено к целочисленной математике с использованием варианта алгоритма рисования линий Брезенхэма или DDA.

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