000142. Метание объектов
Метание объектов|Всем привет! В этом уроке я хотел бы поделится новой информацией для меня - метание объектов.|wmysterio|wmysterio||||Что бы бросить объект в нужную сторону, достаточно воспользоваться опкодом:
Раньше я думал, что последние параметры это координаты куда нужно бросать объект, но, как оказалось, это далеко не так. Рассмотрим сами параметры:
Здесь: 0@ - хэндл объекта, которого нужно бросать 10.0 - сила "удала" по объекту, будет двигаться по оси X, объект отлетит на 10.0 метров 0.0 - аналогично, только для оси Y. 4.0 - аналогично, только для оси Z. Как только объект достигнет высоты в 4.0, он начнёт падать на землю
При применении этого опкода объект, как правило, ничего не делает: просто стоит на месте. Чтобы объект мог метаться нужно внести его в список движений:
Теперь объект можно метать. Давайте напишем скрипт "Шарик", в котором можно метать бильярдный шар:
При нажатии Пробел` шарик будет отскакивать от земли на нужную дистанцию:
Другой опкод, практически идентичный, выглядит так:
Единственное отличие от "0381": мы указываем ускорение объекта, а не силу. Из этого выходит, что объект будет "бросаться" чуть быстрее. Как многим известно, при изменении чисел при умножении итог не изменится, но похоже GTA программисты решили потролить математиков и сделали, что "СИЛАУСКОРЕНИЕ" не равно "УСКОРЕНИЕСИЛА" ( или описание не соответвует действительности ). К примеру:
и
дают разные результаты. Первый вариант идеально подходит под формулу и это визуально заметно. Второй же существенно отличается: действует как опкод "0381", но метание происходит более плавно. На скрине выше можно увидеть что-то похожее на искры. Пример убирает этот недостаток.
Также есть возможность получить текущее ускорение объекта опкодом:
В переменные 1@ 2@ 3@ запишутся текущие ускорения для объекта 0@ по всем 3-м осям.
× **ВАЖНО:** Метание происходит по глобальным координатам, что существенно усложняет вычисление нужных чисел для правильного броска
По такому принципу был написан "Пул" из оригинального мейна, но там очень сложный алгоритм, чтобы его объяснить подробнее. Надеюсь эта информация немного дала вам понять как метать объекты. С Вами был "wmysterio".|1803|1|0|79905200png
600337
400`224``||metanie_obektov|1504593660
Last updated