Гравитационный движок для платформера

другие уроки, мануалы, советы по Construct 2

Сообщение Гравитационный движок для платформера
» 11 апр 2016, 20:36

Доброго времени суток всем! Сегодня решил перевести вот этот урок ==> https://goo.gl/8V3FRb
Все предложения по-поводу переводов принимаю в лс или в комментариях :)
Нашли ошибку? Сообщите о ней в комментариях.
Урок достаточно сложный, самому пришлось долго разбираться. Писал в небольшой спешке, есть ошибки, знаю, и буду исправлять в течении нескольких суток.

Не уверен что правильно подобрал название, но это самое подходящее. Сягодняшний урок будет касаться физики, и как вы уже наверное поняли, гравитации. (ну и платформера). Начнем?

Переводить буду четко по словам автора, думаю, это будет интереснее, чем просто урок.

Предисловие

Как же много было интриги вокруг того, как же я все таки реализовал механику тяжести в AirScape, и именно по этому я решил написать свой первый учебник, что бы рассказать как я это сделал, и как это на самом деле просто. Первое, что я ОБЯЗАТЕЛЬНО должен сказать - этот способ был задуман Yann Granjon (кто это?). Я не самостоятельно придумал эту идею, а просто ее реализовал, за что Yann Granjon большое спасибо.

Основы

Самое главное, для реализации изменения угла тяжести - поведение Platform. После того как вы уверены в его работоспособности, возникает вопрос - как реализовать изменение этого же угла тяжести? Как и предлагал Yann Granjon, с помощью гравитационных зон.

Изображение

Самое главное на этой картинке - цветные зоны. Все это - кадры одного и того же объекта 'gravzone'. У этого объекта есть 5 форм на любой случай жизни. Есть два типа этого объекта - относительный и не относительный.

Код


Код очень легкий, вот его основы:
Изображение
В принципе, существует угол для каждого gravzone. Этот угол определяется в зависимости от того относительна gravzone или нет.
Как правило, округлые гравитационные зоны являются относительными, а плоские - нет. Разница заключается в том, что относительные gravzones притягивают к одной точке, в то время как не скругленные gravzones только привлекают в сторону определенного угла (этот угол обычно просто определяется углом самого gravzone.) (определяется gravzone для не относительных, и angle(player.x,player.y,gravzone.x,gravzone.y для относительных ), а затем превращает угол на два вектора, при этом эти векторы могут быть добавлены к предыдущим векторам, и мы в конечном итоге "стыкаемся" с вектором указывающим среднее направление углов.

Перевернуть на 180 градусов


Однако при "повороте" на 180 градусов, возникает новая проблема. Игрок "падает на неудобное положение", поэтому мы добавим еще один объект, служащий для гг опорой
Изображение
Когда гг соприкасается с flip_assist (воспомагательный предмет) - он "!изгоняет традиционный гравити-кодинг!" (физический кодинг)
Изображение
Этот код в основном переключает стандартный угол тяжести на вручную-заданный, а затем с помощью flip_assist не позволяет игроку вернутся обратно. На самом деле есть два флип_ассиста так что игрок может вращаться туда-сюда, это приводит к умозаключению, что объект "не сбросит гравитацию", и игра не запутается
Изображение

Вот и готова механика. Неплохие идеи для уровней:
Изображение

Понравилось? Ставь плюсик :)
Аватара пользователя

Участник
Сообщений: 211
Я тут с 14 фев 2016
Откуда: Город Игроделов
Двиг: theWorld
Лицензия: Bussines
VK: В ЛС
Репутация 25 [ ? ]


Сообщение Гравитационный движок для платформера
» 28 авг 2016, 06:31

anglelerp(layer_rotation,player.Angle,dt*3) хороший вещь! Спасибо!
Аватара пользователя

Участник
Сообщений: 6
Я тут с 20 фев 2016
Репутация 0 [ ? ]

Сообщение Гравитационный движок для платформера
» 23 июн 2017, 20:02

хороший урок
Аватара пользователя

Участник
Сообщений: 5
Я тут с 23 июн 2017
Репутация 0 [ ? ]

Сообщение Гравитационный движок для платформера
» 28 июн 2018, 16:10

Я не понимать. ;-;
Вы можете это сделать и скинуть файл? ;-;
Аватара пользователя

Участник
Сообщений: 4
Я тут с 01 июн 2018
Репутация 0 [ ? ]



Вернуться в Другие уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх