GI.MoveAndRotate

From SunFlurry wiki
Jump to: navigation, search
  MoveAndRotate (Общие функции объекта GI)
Объект:Объект GI
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Да

Функция изменяет внутренние переменные смещения камеры и повороты сцены, которыми система обновляет текущую проекцию окна GI каждый раз до начала рисования кадра. Для каждого объекта также сохраняется своя матрица смещения и поворота, которая применяется дополнительно к глобальной матрице до начала прорисовки объекта (см. MoveRotateAndScale).

Синтаксис

GI.MoveAndRotate(<Смещение камеры по X (REAL)>,<Смещение камеры по Y (REAL)>,<Смещение камеры по Z (REAL)>,<Поворот сцены вокрут оси X (REAL)>,<Поворот сцены вокрут оси Y (REAL)>,<Поворот сцены вокрут оси Z (REAL)>)

Аргументы

  • <Смещение камеры по X (REAL)>,<Смещение камеры по Y (REAL)>,<Смещение камеры по Z (REAL)> - Аргументы задают линейные смещения камеры. Любой из аргументов может быть опущен, в этом случае соответствующее смещение не будет изменяться.
  • <Поворот сцены вокрут оси X (REAL)>,<Поворот сцены вокрут оси Y (REAL)>,<Поворот сцены вокрут оси Z (REAL)> - Аргументы задают угловой поворот камеры относительно одной из осей. Поворот задается в градусах. Любой из аргументов может быть опущен, в этом случае соответствующая переменная поворота не будет изменена.

Примеры

//Простешее движение персонажа (камеры)
//УголX, УголY -- текущее направление камеры. СкорX, СкорZ -- текущая скорость персонажа
//КоордX, КоордY, КоордZ -- положение камеры.

aGI.MoveAndRotate(,,,УголY,УголX,);

Фи:=Radians(УголX);
Фи2:=Radians(90+УголX);
КоордZ:=КоордZ-(СкорZ*cos(Фи)+СкорX*cos(Фи2))*0.01;
КоордX:=КоордX+(СкорX*sin(Фи2)+СкорZ*sin(Фи))*0.01;

aGI.MoveAndRotate(КоордX,КоордY,КоордZ,,,);