000111. Vector - Что это такое и с чем его едят

Vector - Что это такое и с чем его едят|В этом уроке речь в этом уроке пойдёт о векторах.|wmysterio|wmysterio||||Всем привет! Мы продолжаем изучать скриптинг GTA IV. На очереди в нас "вектор". Термин весьма широкий и нужно сделать уточнение о том, что это в скриптинге.

В SannyBuilder мы писали координаты как последовательность чисел. В таком формате в C# обычно не пишут. Для этого создали несколько классов, которые описывают эту последовательность. Эти числа не всегда отвечают именно за координаты. Их можно представить в виде углов и прочего. На примере координат их легче всего понять.

А таких видов в нас три:

cs
Vector2 MyVect2;
Vector3 MyVect3;
Vector4 MyVect4;

Разница в них только в том, что хранят они разное к-во параметров "координат". Например, дляVector3 существуют три основных свойства, для хранения этих "координат":

cs
MyVect3.X = 0.5F;
MyVect3.Y = 0.1F;
MyVect3.Z = 5.0F;

Кроме этого, есть одно удобство - структура имеет много методов, которые полезно будет использовать в скриптах. Рассмотрим эти функции:

```

cs /* Получает дистанцию между двумя точками: / MyVect3.DistanceTo(MyVect3_1); / Здесь: MyVect3_1 - другой объект Vector3

Возвращаемый тип: float */

Пример в Sanny Builder:

050A: 0@ = dist_XYZ 1@ 2@ 3@ and_XYZ 4@ 5@ 6@

</td></tr>

<tr><td>

cs /* Получает случайную точку, относительно вектора: / MyVect3.Around(30.0F); / Здесь: 30.0F - радиус поиска

Возвращаемый тип: объект Vector3 */

Пример в Sanny Builder:

02C0: store 1@ 2@ 3@ ped_path 4@ 5@ 6@ 02C1: store 1@ 2@ 3@ car_path 4@ 5@ 6@

</td></tr>

<tr><td>

cs /* Получить длину вектора (точно не скажу какую именно): / MyVect3.Length(); / Здесь: Возвращаемый тип: float */

Пример в Sanny Builder: нет</td></tr>

<tr><td>

cs /* Получить грунт вектора: / MyVect3.ToGround(); / Здесь: Возвращаемый тип: объект Vector3 */

Пример в Sanny Builder:

02CE: 4@ = ground_z_at 1@ 2@ 4@

</td></tr>

</tbody></table>

Для примера, сделаем следующий скрипт:

cs using System; using System.Windows.Forms; using GTA; namespace TestScript { public class Thread : Script { public Thread() {

Vector3 MyVect3; MyVect3.X = 10.0F; MyVect3.Y = 10.0F; MyVect3.Z = 2.0F;

while (true) { if ( Game.isKeyPressed(Keys.Tab)) { Player.TeleportTo(MyVect3); } Wait(0); }

} } }



Я подобрал координаты случайным образом, так как никаких программ для вычисления координат я не находил, но если постараюсь, то сделаю свою прогу.

Остальные типы векторов имеют похожие методы, только работают уже со своей последовательностью чисел. На этом краткий обзор завершен. До следующего урока!|733|1|0||vector_chto_ehto_takoe_i_s_chem_ego_edjat|1552392983

Last updated