Ru:Vectors Explained (Scripting)

From AlliedModders Wiki
Jump to: navigation, search

Введение

Есть три разных типа векторов:

- Позиционные векторы

- Угловые векторы

- Векторы скорости


В большинстве случаев вы, вероятно, будете использовать только один из них за раз, но вам не мешает узнать, для чего нужны другие два типа. Вот пример стандартной функции «TeleportEntity», чтобы показать вам, как она выглядит:

native int TeleportEntity(int entity, const float origin[3], const float angles[3], const float velocity[3]);

Вектор положения: Первый вектор в этом нативе, объявленном как origin[3], является вектором положения. Это просто говорит нам абсолютные позиции сущностей в мире. Вектор положения мог бы выглядеть примерно так {15.0, 30.0, 15.0}, и это означало бы, что объект имеет 15 единиц вдоль оси X, 30 единиц вдоль оси Y и 15 единиц вдоль оси Z.

Угловой вектор: Второй вектор в этой нативной, объявленной как angles[3], является угловым вектором. Это указывает на вращение объекта. Этот вектор будет соответствовать формату {pitch, yaw, roll}, который изменяет углы указанного объекта. «Pitch» - это углы вращения вверх и вниз, «Yaw» - влево и вправо, а «Roll» - это вращение вдоль вектора вверх / вниз / влево / вправо.

Вектор скорости: Последний вектор в нативе представляет собой вектор скорости, объявленный как velocity[3] в примере. Этот вектор сообщает игре, где объект будет находиться в следующем кадре (фрейме). Таким образом, в следующем игровом кадре вектор положения этого объекта будет представлять собой сумму вектора положения и вектора скорости из нашего текущего кадра.

Векторы скорости

float vecOrigin[3], vecVelocity[3], vecResult[3];
 
AddVectors(vecOrigin, vecVelocity, vecResult);