Jump to content
Existing user? Sign In

Sign In



Sign Up
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Sandro

Как работает 2-сторонняя система телепортации в игре Sandbox

Recommended Posts

Работа в Sandbox Game Maker v0.37 может показаться сложной. Поэтому мы подготовили для вас пошаговый гайд по созданию системы двухсторонней телепортации.

2-way-teleport-sandbox-game.gif.0e3825b94b68b6312cd772be932f23ca.gif

Примечание: В настоящее время система работает таким образом, что ваш игровой персонаж (Аватар) должен погибнуть и возродиться. По другому система телепортации не заработает. Учтите это при разработке игры.

  • Выберите желаемый Аватар и добавьте «Avatar Behaviour».

  • Добавьте «Health Component».

  • Нажмите на кнопку «Edit Logic». Если этой кнопки не видно, значит необходимые настройки уже внесены.

1.png.34a285643169c5ed969346ce2957fc21.png

  • Переходим в настройки «Health Component». В строке «On Death» нужно выставить значение «RespawnToTag».

  • После того, как появится новая строка настроек «Respawn Tag», нужно прописать тег. Например, при написании гайда мы выставили spawn1. В итоге, любой внутриигровой объект, которому задан такой тег «spawn1», станет точкой респауна после гибели вашего Аватара.

  • «Death Delay» — это показатель времени до возрождения Аватара. Все это время ваш игровой персонаж будет просто лежать на земле, не подавая признаков жизни. В данном примере мы поставили отрицательное число «-2», т.е. наш Аватар мгновенно вскакивал, и анимация его гибели даже не включалась.

  • Также мы переписали стандартное сообщение «Message to Kill», что и вам рекомендуем сделать. Так вы сможете контролировать процесс и сразу видеть, когда это случится. Можно просто добавить единицу в конце, чтобы получилось «Kill1».

2.png.e206d72606b81f238751681182368345.png

Теперь после каждого раза гибели ваш персонаж будет спавниться у ближайшего объекта с тегом «spawn1» и возрождаться рядом с ним. Если тег не задан, то респаун произойдет в том же месте, где он погиб.

  • Разместите объект для использования в качестве точки респауна. Лучше всего, если это будет объект Game Maker по умолчанию, чтобы избежать проблем на стороне клиента. В этом примере мы взяли и поставили «Stone Carving», так как хорошо подходит его плоская форма и удобный размер.

  • Выберите точку респауна и пропишите для нее тег «spawn1».

3.png.b5f1fd03833cdc81b725916ba29efc55.png

Теперь в момент гибели Аватара он респаунится на вершине этого камня. Выбранный вами объект (камень и т.д.) можно сделать невидимым или спрятать под землю.

Вот и все. Теперь у вас есть место респауна для вашего игрового персонажа.

Теперь давайте разберемся, как работает двухсторонняя система телепорта? Это немного сложнее, но с помощью этого гайда у вас все получится.

  • Продублируйте точку респауна, выбрав и нажав на нее, а затем перетащив в другое место, где нужно настроить систему двустороннего телепорта.

  • Выберите каждую «spawn point» и нажмите значок «eye», чтобы сделать объект невидимым, как на скриншоте.

  • Выберите точку респауна, а в настройках физики — «No collision». Теперь не будет помех для других объектов, включая вашего персонажа.

  • Дважды проверьте, соответствует ли тег, прописанный для точки респауна, тому, что внесено в строку компонента «Avatars Health». В этом примере это «spawn1».

4.png.17397effe2be3a483b8551506b0f939b.png

Чудненько! Теперь у вас есть две точки респауна. Теперь нужно что-то сделать, чтобы вызывать гибель игрового персонажа, чтобы использовать телепортацию.

Итак, чтобы система двустороннего телепорта работала правильно, нам пришлось использовать два «question behaviors» для двух разных объектов. Другие объекты, например как «Void Behaviors», для удаления нам не понадобятся. И без них все работает замечательно.

Схема такая — за отправку сообщения, вызывающего спавнер, к которому перекинет Аватар, отвечает «First question behaviour», а «Second question behaviour» отправит сообщение, которое убьет вашего персонажа в одной точке и возродит во второй.

Смотрим на примере, как это работает:

  • Нам нужен рычаг или кнопка для активации системы телепорта. В этом примере мы использовали выставленный по умолчанию объект «Ancient Lever» и добавили по одному с каждой стороны системы телепорта.

  • Добавьте к рычагам «Question Behaviour».

  • Добавьте текст, который вы хотите, чтобы игрок прочитал, задав только один ответ и одну опцию. В нашем примере использован «teleportAway» в качестве отправляемого сообщения.

5.png.1fe4b7427e1856d0f67f836031af9a97.png

Что касается второго вопроса, мы можем использовать любой актив, т.к. его не будет видно. В этом примере мы использовали «NumPad Switch» по умолчанию.

  • Поместите ваш объект рядом с рычагом и задайте ему «Question Behaviour».

  • Поставьте «Message Required» = «teleportAway»

Когда вы взаимодействуете с рычагом, он задаст вам «Вопрос 1». Когда вы отвечаете, он отправляет сообщение на «Вопрос 2», которое сразу же появляется, начиная цепочку.

  • Задайте ответ на «Вопрос 2» как сообщение о смерти вашего аватара, которое мы ранее установили как «Kill1».
    6.png.eb1c2d207395dbfa69e1b22bc748be52.png
  • Поставьте «NumPad Switch» невидимым и «No Collisions»

7.png.8bf704e192f751525b3a70912b9f4db1.png

 

 

 

 

 

 

 

 

 

В момент гибели персонажа, вы заметите, что он телепортирует вас к точке респауна над рычагом. Нам это не нужно. Мы хотим перейти ко второй точке респауна, но у них прописан одинаковый тег. Что делать дальше? Используем «Void Behaviour», чтобы удалить точку с одной стороны, когда активируется рычаг.

Смотрим, как это делается:

  • Выведите еще один «NumPad Switch» и установите «Void Behavior».

  • Установите переключатель «NumPad» в положение «NumPad Switch» to «invisible» и «No Collisions».

  • В настройках «Void Behavior» обязательным сообщением является «teleportAway», которое является первым сообщением, которое отправляется после ответа.

  • «Blocks Destruction» = «DontDestroy».

  • «Assets Destruction» = «OnlyDestroyFromList».

  • «Assets List» здесь вам нужно выбрать актив, который вы использовали в качестве телепорта. Игра будет искать актив в обозначенной «Red Destroy Area», поэтому убедитесь, что ваш телепорт находится в пределах границ.

8.png.e9d90e27f01bce5247300b20d35f16d3.png

Теперь, когда вы используете телепорт, ваш персонаж переместится на другую сторону!

Фух! Но это еще не все. Чтобы переместиться обратно, нужно кое-что сделать. Помните, мы удалили наш первый телепорт, и нет функции, чтобы вернуться.

Смотрим, как это делается:

  • Скопируйте 2 переключателя «NumPad Switch», которые мы сделали, и перетащите их с другой стороны на другой ваш телепорт.

9.png.6ec9d63fcd4fc774dbfbdc74d4d90166.png

  • Убедитесь, что «NumPad Switch» с «Void Behavior» на другой стороне имеет портал в отмеченной «Red Destroy Area»

  • Измените «Message Required» на «teleportHome»

10.png.0d608d0e6a33b3620a935030bd13e41e.png

  • Выберите другой «NumPad Switch» и измените «Message Required» на «teleportHome».

11.png.7d63f7d9b2458e54a6ffaa176d0dfcd6.png

  • Выберите «Ancient Lever» и измените «A1 Broadcast» сообщение на «teleportHome»

12.png.c7de66115386ec35a8f9f9ac1bc7f5f6.png

Теперь у нас есть необходимые настройки и задана функция, чтобы убрать точку респауна под ногами, и больше нет точек респауна. Мы отключили домашний телепорт, чтобы переместиться на другую сторону. Теперь нужно найти способ вызова телепорта на другой стороне, чтобы можно было до него добраться.

Смотрим, как это делается:

  • Сделайте еще один «NumPad Switch» и задайте ему «Asset Spawner Behaviour».

  • Сделайте «NumPad Switch» невидимым и «No Collisions» и поместите его прямо над спавнером, как на скрине.

  • «Asset to Spawn» = «Stone Carving»

  • «Tags» = «spawn1» — и новая точка респауна готова.

  • «Message required» = «teleportHome» Когда вы закончите с остальными настройками, продублируйте этот актив с помощью CTRL + D, перетащите его на другую сторону в другом месте телепорта и измените сообщение на «teleportAway».

  • «Physics Type» = «No Collisions».

13.png.58df8579462bbc7f11705687bd8d8d4c.png

 

Вот и все. Теперь у вас есть рабочая 2-сторонняя система телепортации. Круто!

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Get connected with us on social networks:

×
×
  • Create New...