Econ dude проходження камери за героєм в 2d іграх
Сьогодні я розповім про те, як зробити проходження камери за героєм в 2D іграх. Це важлива штука для багатьох типів ігор, зокрема для TDS (Top Down Shooter). Говоримо ми як завжди про Game Maker (Будь-яких версій, включаючи Game Maker Studio 2).
Минулий урок ви можете знайти тут:
Ось дивіться, у нас є рівень - кімната розміром 1000 на 1000 пікселів:

Зверху у нас герой. Карта розміром 1000 на 1000 - занадто велика, таких дозволів не існує, а це значить нам потрібно показувати не всю карту, а тільки певну область цієї карти.
В даному випадку буде проходження камери за героєм.
Щоб це зробити нам потрібно використовувати так звані види (views).
В Game Maker вони знаходяться в настройках кімнат.

Установку буде приблизно ось такі
Саме так камера слід за героєм в даній грі. До речі, исходник для гри Lonely Dude знаходиться у вільному доступі, скачати його ви можете ось тут. Так все це (і багато іншого) вже є, і на його прикладі можна вчитися.
В даному випадку дозвіл гри у мене низька і горизонтальне - 800 на 600 пікселів.
Ставимо галочку - enable the use of views, це дозволить використовувати види, нам це потрібно. Увімкніть як мінімум у одного виду. Це покаже рамкою включений вид в кімнаті.
Дві наступні галочки не включаємо.
Далі вибираємо один з видів, наприклад тут - view 0. Справа в тому, що можна на одному екрані одночасно показувати кілька видів. Можуть бути прикольні фішки. Міні карта якась або ж наприклад окрема камера, яка показує як летять кулі / ракети.
Але ці заморочки нам поки рано пробувати.
Далі нам потрібно поставити галочку - visible when room starts (видно коли кімната з'являється). І далі починається невелика плутанина.
- View - зона в кімнаті. яку ми беремо
- Port of screen - зона на екрані, де ми буде це зону в кімнаті показувати
Напевно незрозуміло. Давайте покажу дещо.

Во, праворуч зверху - мінікарта.
На прикладі того як зробити мінікарту зрозуміти простіше. Ми крім першого, включаємо ще один вид, теж при старті кімнати. І робимо ось такі налаштування:

Новий вид - view 1
Що я зробив? Вид в кімнаті (кімнати) 1000 Перейти до 1000 - тобто, ми показуємо всю кімнату.
А де ми її показуємо? А ось це вже порт на екран (port on screen). Квадрат розміром 200 на 200 ми показуємо на координатах 0, 600.
Підсумкове дозвіл у нас виходить те-ж саме (800 на 600). Ось розміри:

По суті ми на тому квадраті праворуч (міні карті) розмістили всю нашу карту 1000 Перейти до 1000, і тут до речі за героєм слідувати зовсім не обов'язково. Є й проблема, об'єкти на міникарті погано видно, криво стиснулися ну і т.д. Але це вже інше питання, головне зрозуміти принцип.
Можна наприклад зробити знаєте як? Ось так-же, тільки на міні карті прописати розмір видать не 1000 Перейти до 1000, а всього-лише 200 на 200, і при цьому повісити слідування за кулею.
По центру вже не міні карта, а куля. Перекрутити, зробив гифку
Пишеться це так:

Дотримання вже за кулею.
Якщо треба, замість кулі там можна вибрати слідування за прицілом, це до речі досить прикольно буде.
До речі, а як зробити так, щоб наприклад в правому верхньому кутку завжди був напис або картинка? Наприклад - картинка зброї. І щоб вона теж ніби слідувала за героєм?
Для цього є дві функції:
view_xview [0]
view_yview [0] Це прив'язка координат до виду. Наприклад ви можете написати:
draw_text (view_xview [0] + 725, view_yview [0] + 25, string ( 'HP:') + string (global.hp)) Це буде малювати змінну життів (цифру) в правому верхньому куті. А з об'єктами можна просто в step (в кроці) вказати x і y рівними за потрібне вам координатам вже по відношенню до кімнати. Можна тут і без плюса, а відразу писати координати.
На цьому все, якщо вам сподобався цей урок, ставте лайк і палець вгору трохи нижче.