Начало. Многие разработчики неоднократно утыкались в одну простую проблему: не хватает встроенных функций! Есть куча эффектов, математических действий, которых нет в ГМ, и не предвидится, потому как они довольно-таки специализированны. Я поступаю в таких случаях достаточно просто: пишу свои. Иногда это требует кучи времени на отладку, иногда приходится искать в инете решение подобных проблем, но, как правило, в конце концов я прихожу к нужному солюшену. Сюда я буду кидать наиболее интересные и полезные функции для объектов, в том числе и ИИ для различных игровых объектов. Надеюсь, вам пригодится. Но и вы меня не забудьте поблагодарить плюсиком в репу, мне будет очень приятно=) Начнем же! Углы и числа. 1. Angle_difference Возвращает разницу между двумя углами(в градусах). Очень полезна в большинстве игр с видом от третьего лица/видом сверху.
Code
//argument0 - angle1 in degrees //argument1 - angle2 in degrees
2. Point_rotation Эта подпрограмма вращает заданную точку вокруг центра координат. В global.px и global.py - искомые координаты точки. Чтобы вращать точку вокруг необходимой точки, надо сначала ее координаты вычесть, а потом прибавить к уже готовой.
5. Использование функций sin(angle) и cos(angle) Это уже скорее общая полезная информация об этих функциях. Во-первых, никогда не надо забывать переводить градусы в радианы и наоборот, когда используете эти замечательные функции. То есть, синус и косинус работают только с радианами, и как правило, надо писать так: sin(degtorad(angle)) и cos(degtorad(angle)) соответственно. Эти функции возвращают значение синуса/косинуса данного угла, а само значение колеблется в пределах от -1 до 1 включительно. Зачем же они нужны? На самом деле, они очень полезны в самых разным местах. Я назову одно из множества практических применений синуса и косинуса: определение скорости/смещения объекта в каждом из кардинальных направлений (х,у). То есть, зная направление движения объекта и количество пикселей, которое он должен проходить каждый шаг, мы легко можем установить его скорость и по оси Х, и по оси У. Как? Очень просто: -sin его направления движения - это смещение по оси У (главное, про минус не забываем), а cos его направления движения - по оси Х. Так что, чтобы точно по клеткам смещать объект в нужном направлении, не пользуюясь встроенными векторными функциями, можно просто написать:
Code
x+=cos(direction) y-=sin(direction)
Напомню, все углы только в радианах, не забывайте про это. Я в первое время, к примеру, часто путался, но потом привык. Удачных разработок!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Интересные функции Game Maker. Введение», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Рад, что пригодилось=) В идеале надо бы создать одну большую тему с кучей рассортированных по разделам функций, в которую все будут добавлять новые. Тогда многие найденные решения не придется искать заново
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]