GI.MoveAndRotate
MoveAndRotate (Общие функции объекта 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,,,);