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 modified 1yr ago