Як створити гру Понг - hyperPong | hyperPad Documentation

Loading...

Logo
DocumentationПосібникиЯк створити гру Понг - hyperPong
Посібники

Як створити гру Понг - hyperPong

Published July 10, 2019

Як створити гру Понг - hyperPong

Примітка: У кінці цієї статті ви можете знайти завершений файл проекту для цього навчального посібника.

Вступ

У цьому навчальному посібнику ми створимо гру, схожу на Понг, з нуля. Ми розглянемо деякі більш розвинуті функції та поведінки у hyperPad, тому цей навчальний посібник передбачає, що ви маєте базові знання про редактор hyperPad. Якщо ви вважаєте, що потрібно більше ознайомитися зі створенням гри з нуля, спершу ознайомтеся з Повним посібником - Створення платформи гри .

Понг - це проста гра для двох гравців, яка складається лише з двох ракеток і м'яча, і може бути вважатися простим цифровим варіантом настільного тенісу. Кожен гравець контролює ракетку, обидві з яких розташовані з протилежних боків столу. Ракетки можуть рухатися лише вперед і назад, відбивати м'яч в бік супротивника. Якщо гравець прогавить м'яч, інший гравець отримує очко. Перший гравець, який набере 11 очок, виграє!

У нашій грі Понг ми включимо можливість грати в режимі 1 гравець (Гравець проти AI), 2 гравці (Гравець проти Гравця) або 0 гравців у режимі «Глядач» (AI проти AI).

Частина 1: Налаштування проекту та головне меню

Давайте почнемо зі створення нового проекту.

Відкрийте меню Проекти у hyperPad і натисніть Новий проект. Дайте вашому проекту назву і натисніть Далі. Орієнтацію можна залишити за замовчуванням як горизонтальну. Для цього навчального посібника підтримка пристрою встановлена на iPad 4:3. На наступному екрані оберіть «Перспектива пташиного ока» та залиште решту за замовчуванням.

Тепер, коли у нас є новий проект, давайте швидко розпочнемо налаштування головного меню, перш ніж переходити безпосередньо до самої гри. Перше, що ми зробимо - перейменуємо нашу сцену на «Головне меню».

Натисніть кнопку меню проекту/сцени і натисніть кнопку шестерні біля нашої «Сцена 1».

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Натисніть опцію Налаштування і перейменуйте нашу сцену на «Головне меню». Натисніть Зберегти, щоб зберегти та закрити вікно налаштувань.

Як створити гру Понг - hyperPong

Далі, щоб залишити традиції ранніх ретро-ігор, таких як аркадний Понг, ми можемо зробити наш фон чорним.

Натисніть кнопку Налаштування сцени і виберіть Фон. Натисніть кнопку «Змінити колір» і встановіть його на чорний (#000000FF).

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Тепер давайте додамо заголовок до нашого головного меню. Натисніть кнопку Спеціальні об'єкти та виберіть Мітка.

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Введіть назву вашої гри в текстовому полі (для цього навчального посібника було введено «hyperPong»), встановіть розмір шрифту на щось велике, але не надто велике. Для заголовка «hyperPong» 72 пункти - це хороший розмір. Змініть колір на білий (#FFFFFFFF) і розмістіть його по центру меню ближче до верху.

Як створити гру Понг - hyperPong

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

Частина 2: Налаштування ігрової сцени та ракетки

Натисніть кнопку меню проекту і натисніть «Додати сцену». Назвіть її «Гра» і натисніть Створити. Тепер на сцені гри ви повинні бачити порожнє полотно. Як ми і робили зі сценою Головного меню, натисніть кнопку Налаштування сцени і змініть фон на чорний (#000000FF).

Давайте почнемо створювати наші гравецькі ракетки. Створіть порожній об'єкт, перейшовши до кнопки Спеціальні об'єкти і вибравши «Порожній об'єкт». Змініть його колір на білий (#FFFFFFFF) і переконайтеся, що повзунок непрозорості повністю включений.

Як створити гру Понг - hyperPong

Перейменуйте об'єкт на «Гравець-1» і встановіть його режим фізики на Фізика, залишивши параметр Прохідний включеним.

Як створити гру Понг - hyperPong

Причина, чому ми залишимо параметр Прохідний увімкненим, - це те, що ми хочемо мати більший контроль над тим, як м'яч взаємодіє з ракеткою, коли він її торкається. Ми хочемо вміти контролювати швидкість та напрямок, в якому рухається м'яч, вручну.

У властивостях об'єкта Гравець-1 перейдіть на вкладку Трансформація і встановіть масштаб X на 25% та перемістіть його вліво на ігровому полі.

Як створити гру Понг - hyperPong

Далі ми додамо деякі елементи управління до нашої ракетки, щоб вона могла рухатися. З обраною ракеткою перейдіть до її редактора поведінки, повернувшись на вкладку Фізика.

Як створити гру Понг - hyperPong

Помістіть елемент управління Джойстик аналоговий, знайдений у розділі Взаємодія (якщо ви його не можете знайти, можливо, вам потрібно буде натиснути вкладку Розширений). Це автоматично створить джойстик для вас у редакторі сцени.

Але ми не хочемо дозволяти ракетці рухатися тільки за допомогою руху джойстика. Ми також хочемо, щоб AI могло виконувати рухи.

У розділі Користувацькі елементи помістіть контейнер прямокутника. Це зберігатиме, в якому напрямку буде рухатися ракетка. Таким чином, як гравець, який контролює джойстик, так і AI, який виконує обчислення, можуть рухатися, змінюючи це одне значення. Його значення за замовчуванням має бути встановлено на 0. Також гарна думка дати йому хорошу назву, «Напрямок руху» здається доречним.

Як створити гру Понг - hyperPong

З обраним контейнером прямокутника натисніть кнопку «Змінити вхідне поле» і натисніть Так. Це створить поведінку «Встановити вхідне поле» для контейнера прямокутника, щоб ми могли змінити його значення, коли нам це потрібно. Підключіть «Встановити вхідне поле» до аналогового джойстика.

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Оберіть поведінку «Встановити вхідне поле» та перетягніть вихідне значення з аналогового джойстика у поле «Нове значення». Виберіть властивість «y». Тепер контейнер прямокутника Напрямок руху буде відстежувати, наскільки далеко гравець рухає джойстик вгору чи вниз (вісь y).

Як створити гру Понг - hyperPong

Тепер, коли ми відстежуємо, як далеко джойстик рухається вгору чи вниз, нам також потрібно скинути його до нуля, якщо гравець відпустить джойстик. В іншому випадку, ракетка продовжуватиме рухатися в напрямку, в якому вона востаннє запам'ятала.

У розділі Взаємодія додайте поведінку «Зупинивши торкання», і натисніть на неї, щоб відкрити її властивості. За замовчуванням вона відстежує, коли гравець перестає торкатися ракетки, але ми хочемо відстежувати, коли гравець перестає торкатися джойстика.

Натисніть властивість об'єкта, щоб змінити її, і виберіть джойстик. Вам може знадобитися вибрати глобальний рівень UI, щоб вибрати його. Коли він вибраний, натисніть кнопку перевірки. Тепер поведінка повинна показувати джойстик як відстежуваний об'єкт.

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Натисніть на «Встановити вхідне поле», яке ми створили раніше, і дублюйте його. З дубльованою поведінкою «Встановити вхідне поле» підключіть його до поведінки «Зупинивши торкання» і встановіть його властивість «Нове значення» на 0.

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Тепер наш контейнер змінної Напрямок руху відстежуватиме рухи вгору та вниз джойстика і скине його до 0, коли джойстик буде відпущено. Це дає нам чудовий спосіб сказати нашій ракетці, як рухатися, тож давайте продовжимо і дамо нашій ракетці деякий рух.

У розділі Користувацькі елементи помістіть поведінку таймера. У його властивостях встановіть інтервал на 0. Цей таймер виконуватим те, що завгодно, даючи нам можливість оновлювати рух ракетки дуже часто.

Як створити гру Понг - hyperPong

Перед встановленням швидкості ракетки, ми хочемо переконатися, що значення для контейнера Напрямок руху обмежене в розумних межах, на випадок, якщо воно стане занадто високим або занадто низьким. В іншому випадку, наша ракетка буде рухатися занадто швидко в деяких випадках.

У розділі Логіка помістіть поведінку Мінімум і Максимум. Підключіть поведінку Мінімум до таймера, а Максимум до Мінімуму. У вас має бути щось на зразок цього:

Як створити гру Понг - hyperPong

У властивостях поведінки Мінімум встановіть перше значення на вихідне значення поведінки Напрямок руху, а друге значення на 1.

Поведінка Мінімум виведе найменше число, яке їй дано. Отже, якщо значення напрямку руху перевищує 1, воно виведе 1. Інакше, воно просто виведе значення Напрямок руху.

Як створити гру Понг - hyperPong

У властивостях поведінки Максимум встановіть перше значення на результат Мінімуму, а друге значення на -1.

Поведінка Максимум виведе найбільше число, яке їй дано. Отже, якщо значення Напрямок руху нижче -1, воно виведе -1. Інакше, воно виведе значення Мінімуму (яке або 1, або Напрямок руху, яке менше).

Як створити гру Понг - hyperPong

Усе це означає, що обчислене значення Максимуму фактично є значенням Напрямок руху, обмеженим між -1 і +1. Це дає нам повний контроль над швидкістю, з якою може рухатися ракетка!

Діапазон від -1 до +1 легко піддається обробці, але буде занадто повільним, якщо ми безпосередньо використаємо його як швидкість ракетки.

Снова у розділі Логіка, помістіть поведінку Множити значення і підключіть її до поведінки Максимуму. Для першого значення встановіть результат поведінки Максимуму. Для другого значення встановіть хороше значення «максимальної швидкості».

На даний момент встановіть його на 20. Якщо ви думаєте, що ракетка рухається занадто повільно або занадто швидко, ви можете просто встановити це число на більше або менше.

Як створити гру Понг - hyperPong

Поведінка Множити значення тепер дає нам хороший діапазон швидкості, від -20 до +20.

Тепер саме час встановити швидкість ракетки. У розділі Фізика додайте поведінку «Встановити швидкість» і підключіть її до поведінки Множити значення. Встановіть поле «x» на 0, а поле «y» на результат виходу поведінки Множити значення.

Як створити гру Понг - hyperPong

Спробуйте це! Коли ви граєте у гру, ракетка повинна рухатися, коли ви переміщаєте джойстик вгору та вниз.

Video_2019-07-17__2_39_15_PM.sgif

Як ви, мабуть, помітили під час тестування, нічого не заважає ракетці покинути екран. У наступній частині ми додамо деякі межі, щоб зберегти все в полі зору.

Частина 3: Межі гри

Перш ніж продовжити, давайте використаємо деяку подальшу обачність і розглянемо хороший дизайн гри. Ракетка гравця не буде в центрі екрану, але ближче до країв, оскільки ми надалі складемо нашу гру. Це стане проблемою, оскільки ми маємо UI-елементи (тобто джойстики), які перекриваються з нашими ігровими елементами (тобто ракетками).

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

Натисніть кнопку Спеціальні об'єкти і створіть новий порожній об'єкт. Натисніть на новий порожній об'єкт, щоб відкрити його властивості.

Залиште його фізичний режим встановленим на Стіна і вимкніть параметр Прохідний. Встановіть його колір, щоб ми могли візуально бачити його, непрозорий темно-сірий (#1F1F1FFF) виглядає добре. Встановіть тертя на 0% та відскок на 100%.

Як створити гру Понг - hyperPong

Тепер на вкладці Трансформація стіни встановіть масштаб Y на 200% та перемістіть її до верхньої частини ігрової області. Тепер розтягніть її так, щоб вона охоплювала всю ширину ігрової області. Також ви можете увімкнути режим прив’язки до решітки, щоб допомогти вам точно розташувати її.

Як створити гру Понг - hyperPong

Тепер дублікат стіни і перемістіть копію вниз.

Знову дублікат і встановіть його масштаб X на 200%. Потім розтягніть висоту, щоб відповідати екрані і помістіть її зліва від екрану.

І знову, дублікат вертикальну стіну і перемістіть її праворуч від екрану. Тепер у вас має бути повністю закрите ігрове поле:

Як створити гру Понг - hyperPong

Коли ви зараз граєте у гру, ви, мабуть, одразу помітите, що ви можете проходити крізь стіни, ніби їх не існувало. Це через дві причини: ми налаштували ракетку, щоб вона була «Прохідною» і постійно примушуємо швидкість ракетки кожну рамку. Це нормально, нам просто потрібно реалізувати спосіб зупинити ракетку від руху в стіну.

Те, що ми зробимо, щоб реалізувати цю поведінку, - це перевірити позицію гравця в порівнянні з позицією стіни. Якщо це правда, то перемістіть гравця назад у ігрову зону.

Для того, щоб трохи спростити це для реалізації, натисніть на верхню стіну та змініть точку прив’язки Y на 0%. Це зафіксує положення стіни до самого нижнього її частини. Вам можливо потрібно буде розблокувати поля прив’язки, натиснувши на значок замка.

Як створити гру Понг - hyperPong

Аналогічно, для нижньої стіни змініть точку прив'язки нижньої стіни на 100% цього разу. Це закріпить положення нижньої стіни до самої верхньої її частини.

Як створити гру Понг - hyperPong

Тепер ми готові реалізувати нашу поведінку перевірки меж. Натисніть на ракетку і відкрийте її редактор поведінки.

Розпочніть з того, щоб помістити поведінку отримає обмеження з розділу Логіка. Вона повинна за замовчуванням використовувати ракетку. Ця поведінка дасть нам нижні/ліві координати і розмір ракетки.

Далі, знову розгортайте два Отримати позиції з розділу Трансформація і підключіть їх до поведінки Додати значення в паралельному порядку.

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

Як створити гру Понг - hyperPong

Для кожної поведінки Отримати позицію розгорніть і підключіть поведінку Віднімання значень з розділу Логіка.

У властивостях для Віднімання значень, підключених до Отримати позицію нижньої стіни, встановіть перше значення на результат «позиція_y» для нижньої стіни. Потім встановіть друге значення на «y» для Отримати обмеження.

Як створити гру Понг - hyperPong

Тепер для властивостей у іншій поведінці Віднімання значень підключеній до Отримати позицію верхньої стіни, встановіть перше значення на «позиція_y» для верхньої стіни. Потім встановіть друге значення на результат «Додати значення - верхню частину гравця».

Як створити гру Понг - hyperPong

Ці віднімання скажуть нам, як далеко нам потрібно «штовхнути» ракетку назад, щоб вона залишалася в ігровій зоні. Тепер нам просто потрібно перевірити, чи потрібно нам це робити.

У розділі логіки опустіть та підключіть два Якщо поведінки для обох гілок поведінки.

Для якщо поведінки, підключеного до гілки нижньої стіни, встановіть перше значення на результат підключеної поведінки Віднімання значень. Встановіть умову на > ("Є більшим за") та друге значення на 0.

Для якщо поведінки, підключеного до гілки верхньої стіни, встановіть перше значення на результат підключеної поведінки Віднімання значень. Умову встановіть на < ("Є менше ніж") та друге значення на 0.

Обидві ці якщо умови продовжать виконання, якщо ракетка перевищить кожну стіну відповідно.

Як створити гру Понг - hyperPong

Якщо ракетка перевищує стіну, ми хочемо примушувати зупинити ракетку від подальшого руху, скинувши швидкість ракетки до 0, а потім перемістивши її назад у ігрову зону.

У розділі Фізика помістіть поведінку «Встановити швидкість» для кожної гілки. Обидва встановлюють їх значення швидкості X/Y на 0.

Як створити гру Понг - hyperPong

Тепер ми можемо штовхнути ракетку назад у гру. У розділі Трансформація помістіть поведінку «Перемістити на» для кожної гілки.

У кожній поведінці «Перемістити на» залиште значення «Перемістити на X» на 0 і встановіть значення «Перемістити на Y» на результат віднімання значень у їхніх відповідних гілках. Потім встановіть тривалість на 0 секунд (моментально).

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Цей весь розділ, коли він виконується, тепер перевірятиме, чи ракетка знаходиться в межах стіни, як далеко вона знаходиться у стіні та штовхне її, якщо потрібно. Тепер нам просто потрібно виконати цей ланцюг поведінки щоразу, коли ракетка рухається.

Для простоти, на самому початку цього ланцюга поведінки додайте Пакет поведінки з розділу Користувальницькі елементи та підключіть його над поведінністю Отримати обмеження. Ви можете перейменувати його на щось корисне, наприклад, «Перевірити межі».

Примітка: поведінка «Пакет поведінки» нічого не робить сама по собі і тільки використовується тут, щоб відзначити «початкову точку» для перевірки, чи знаходиться ракетка поза межами.

Як створити гру Понг - hyperPong

Далі, під розділом Користувальницькі елементи помістіть поведінку «Виконати поведінку». У її властивостях натисніть на поле «Вибрати поведінку» і виберіть поведінку «Перевірити межі», яку ми щойно створили. Тепер перемістіть поведінку Виконати під те, де ми спочатку встановили швидкість ракетки для руху ракетки. Підключіть Виконати поведінку до поведінки «Встановити швидкість» з початкового ланцюга руху ракетки.

Як створити гру Понг - hyperPong

Тепер щоразу, коли ракетка оновлює свою швидкість руху, поведінка Виконати «пострибує» виконання до нашого нового ланцюга поведінки Перевірки меж, де буде перевірено, чи вийшла ракетка за межі!

Тестуйте це і дивіться, як воно працює!

Остання річ, яку потрібно зробити перед переходом, - це перемістити ракетку до лівого боку поля.

Як створити гру Понг - hyperPong

Тепер, коли у нас є місце, давайте створимо м'яч!

Частина 4: Створення м'яча

Повертаючись до редактора сцени, створіть порожній об'єкт. Встановіть його фізичний режим на Фізика і вимкніть Параметр Прохідний, щоб м'яч міг рухатися та фізично зіткнутися з границями. Встановіть тертя на 0% і відскок на 100%. Встановіть колір на білий (#FFFFFFFF). Для простоти також можна перейменувати цей об'єкт на «М'яч».

Як створити гру Понг - hyperPong

У вкладці Трансформація встановіть масштаб на X=25% і Y=25%, а позицію на X=50% і Y=50%.

Як створити гру Понг - hyperPong

Наступним кроком відкрийте редактор поведінки для м'яча і дамо йому певний рух. У розділі Користувацькі елементи помістіть поведінку Очікування і встановіть її на 3 секунди.

Потім помістіть поведінку Випадкове число з розділу Логіка і з'єднайте її з поведінкою Очікування. Для першого значення було поставлено -1.0, а для другого значення - 1.0. Обов'язково включайте «.0», щоб воно випадково вибирало число між -1.0 і 1.0, включаючи десяткові дроби, інакше воно вибере лише цілі числа. Це буде служити випадковим "направленням удару", коли м'яч спочатку запускається.

Як створити гру Понг - hyperPong

Далі, підключіть поведінку Застосувати силу з розділу Фізика. Встановіть Силу X=-1, а Силу Y на результат Випадкового числа. Це стане напрямком, в якому м'яч буде рухатися, але 1 ньютон - це не багато сили, тому ми повинні також змінити множник. Встановіть множник на 150 і протестуйте гру, щоб подивитися, чи це занадто швидко або повільно. Якщо так, ви можете змінити цей множник відповідно. М'яч повинен почати рухатися через 3 секунди під час гри, наче його подали.

Як створити гру Понг - hyperPong

Під час тестування м'яч повинен відскакувати від стін, але проходити через ракетку. Це нормально, оскільки ми ще не реалізували поведінки зіткнення ракетки з м'ячем. Ви також, можливо, помітили, що м'яч іноді може почати обертатися, чого ми не хочемо, тож давайте це виправимо.

Повернемося до редактора поведінок м'яча, де завжди помістіть поведінку Заблокувати обертання під розділом Трансформація, і перевірте це знову. Тепер м'яч не крутитиметься неконтрольовано більше.

Як створити гру Понг - hyperPong

Перед створенням поведінок для зіткнення з ракеткою, повертаючись до редактора сцени, натисніть на ракетку і в її властивостях перейдіть на вкладку міток. У текстовому полі введіть "Ракетка" і натисніть кнопку +, щоб додати мітку до ракетки.

Як створити гру Понг - hyperPong

Тепер повертайтеся до редактора поведінки м'яча. У розділі Об'єкт помістіть в будь-якому місці поведінку Взаємодія. У властивостях цієї поведінки натисніть на вкладці Мітки і виберіть мітку Ракетка, яку ми створили. Тепер, всякий раз, коли м'яч торкається будь-якого об'єкта з міткою "Ракетка", ця подія буде виконуватися.

Що ми хочемо зробити, це взяти поточну швидкість м'яча і перевернути його X швидкість. Таким чином, якщо м'яч рухався вліво, він почне рухатися вправо, і навпаки. Ми також хочемо, щоб м'яч рухався трохи швидше, ніж раніше, так що з часом м'яч поступово товаришуватиме.

З'єднайте поведінку Взаємодії з поведінкою Отримати швидкість з розділу Фізика. Після цього підключіть поведінку Множити значення з розділу Логіка. У першому значенні поставте результат «швидкість_x» з Отримати швидкість. Для другого значення визначте значення -1.03. Результат цієї множення значення буде негативна х-швидкість м'яча, а також 3% збільшення швидкості. Тож давайте застосуємо цю зміну наступною.

Як створити гру Понг - hyperPong

Підключіть поведінку Встановити швидкість з розділу Фізика до поведінки Множити значення. Встановіть його X швидкість на результат множення і залиште Y швидкість такою ж.

Як створити гру Понг - hyperPong

Тепер, коли ви граєте, м'яч повинен відскочити, вдарити в ракетку і змінити напрямок з невеликою, майже непомітною швидкість зміною.

Воно все починає набирати обертів! М'яч і ракетка рухаються нормально, але напрямок м'яча не змінюється. Коли м'яч потрапляє в ракетку, він повинен змінювати їх напрямок; якщо м'яч торкається ближче до верхньої частини ракетки, то він має підніматися, а якщо м'яч торкнеться ближче до нижньої частини ракетки, то він має опускатися. Це додасть рівень складності, а також навичок, оскільки гравець(и) матимуть певний контроль, куди йтиме м'яч.

Щоб дізнатися, наскільки сильно ми повинні підняти м'яч, нам потрібно знайти різницю в положеннях між м'ячем і ракеткою. У розділі Трансформація помістіть два Отримати позиції і підключіть їх послідовно під Встановити швидкість. Перший Отримати позицію залишиться відстежувати м'яч за замовчуванням. Змініть другий Отримати позицію на вихід «ObjectB_ID» з поведінки Взаємодії.

Примітка:"ObjectB" у цьому випадку буде коло кілька ракеток, оскільки це другий об’єкт, відносно якого виконується зіткнення, в той час як перший об'єкт («ObjectA») - це м'яч.

Як створити гру Понг - hyperPong

Скиньте і підключіть поведінку Віднімання значень з розділу Логіка. Встановіть першу значення на результат «позиція_y» з першого Отримати позицію, що відстежує м'яч. Встановіть друге значення на результат «позиція_y» з другого Отримати позицію, що відстежує ракетку.

Як створити гру Понг - hyperPong

Потім помістіть і підключіть поведінку Застосувати силу з розділу Фізика. Встановіть значення сили X на 0, а Y на результат Віднімання значень. Розбіжності за позицією самі по собі не будуть дуже сильними, тому ми також маємо скорегувати множник. Спробуйте множник 50, і подивіться, як це буде в грі.

Як створити гру Понг - hyperPong

Під час тестування м'яч тепер повинен змінити своє підіймання залежно від того, де ви наносите удар по ракетці. М'яч має бути вище, якщо він вражений ближче до верхньої частини ракетки, і має опускатися, якщо торкається ближче до нижньої частини ракетки. Якщо ваш м'яч піднімається в неправильному напрямку, спробуйте поміняти місцями значення у поведінці Віднімання значень, і це має вирішити проблему.

Ми майже закінчили повну реалізацію руху м'яча! Є ще одна невелика проблема; немає ніякого обмеження, як швидко може рухатися м'яч! Справді, граючи деякий час без скидання, м'яч може рухатися так швидко, що може фактично пройти через об'єкти. Ми повинні реалізувати обмеження на швидкість м'яча, щоб вона не досягала цієї надзвичайної швидкості.

Після поведінки Застосувати силу розмістіть і підключіть поведінку Отримати швидкість з розділу Фізика, щоб отримати нову швидкість м'яча. Під цим, розмістіть і підключіть поведінки Максимум і Мінімум в серії з розділу Логіка.

У властивостях Максимуму встановіть перше значення на результат «швидкість_x» з Отримати швидкість, а друге значення на -25. Це дасть результат, який є найбільшим значенням, яке дається.

Як створити гру Понг - hyperPong

У властивостях Мінімуму встановіть перше значення на результат Максимуму, а друге значення на 25. Це дасть результат, який є найменшим із значень швидкості м'яча між -25 і +25. Ні вище, ні нижче!

Як створити гру Понг - hyperPong

Тепер нам потрібно зробити те ж саме для Y швидкості м'яча. Розмістіть і підключіть ще один набір Максимум та Мінімум в серії. У нових властивостях Максимуму, встановіть перше значення на результат «швидкість_y» з Отримати швидкість, а друге значення на -10.

Як створити гру Понг - hyperPong

У нових властивостях Мінімуму, встановіть перше значення на результат нового Максимуму, а друге значення на 10. Це залишить рейт Y швидкості між -10 та +10. Ви можете змінити ці значення пізніше, якщо ви хочете!

Як створити гру Понг - hyperPong

Тепер, коли у нас є значення швидкості м'яча після обмеження, давайте застосуємо їх зараз. Знову помістіть і підключіть поведінку «Встановити швидкість» з розділу Фізика. У її властивостях, встановіть швидкість X на результат першого Мінімуму, а швидкість Y на результат другого Мінімуму.

Тепер, незалежно від того, як довго триває матч, м'яч не буде рухатися на екстремальні швидкості. Y швидкість також обмежена, так що м'яч не підніматиметься занадто високо.

Як створити гру Понг - hyperPong

Частина 5: Штучний інтелект ракетки

Хоча було б нормально дублікувати ракетку і створити другий граючий ракетку, не було б класно, якби була можливість боротися проти AI замість гри на 2-х гравців? Звісно! У цій частині ми розглянемо спосіб надання ракетці AI, а також надання користувачу можливості грати у режимі 2 гравців або проти AI.

Використовуючи систему, яку ми налаштували для руху гравця - тобто для зміни контейнера Напрямок руху - реалізація AI досить проста. Замість використання джойстика, ракетка змініть своє Напрямок руху в залежності від того, чи м'яч вище чи нижчий за неї.

Ми також додамо деяку ентропію до Напрямок руху, або іншими словами, деяку випадковість. Таким чином, ми отримаємо деякі характеристики, схожі на людські, для AI. AI не буде відчувати себе так механічно і не буде просто грати гру вдосконалено.

Ось як ми визначимо наш AI:

  • AI рухатим, тільки якщо м'яч йде в їх бік.
  • Напрямок руху - це просто різниця між Y (вертикальною) позицією м'яча і ракетки, плюс певна ентропія.
  • Якщо м'яч зіткнеться з чимось (ракеткою, стіною чи будь-чим іншим), ентропія ракетки AI змінилася.
  • Ентропія базується на швидкості м'яча; чим швидше рухається м'яч, тим вищою буде значення ентропії, отже, тим менше точною буде ракетка.

Здається, досить просто, давайте перейдемо до роботи.

Натисніть на ракетку і вхідте до її редактора поведінки. Знайдіть вільне місце і помістіть нову поведінку таймера з розділу Користувацькі елементи. Встановіть таймер на 0 секунд. Для зручності ви можете змінити його назву на щось корисне, наприклад, «AI Think».

Примітка: Якщо ви отримуєте повідомлення тут або в майбутньому про те, що забагато таймерів з 0 секунд, можете безпечно ігнорувати це. У нашому проекті їх не буде дуже багато.

Як створити гру Понг - hyperPong

Спочатку ми хочемо встановити Напрямок руху на 0, щоб ракетка зупинилася, коли ми не повинні рухатися. Натисніть на поведінку Напрямок руху, яку ми зробили у Частині 2, і натисніть кнопку Змінити поле вводу, щоб створити нову поведінку Установити Вхідне Поле. Підключіть поведінку Установити поле вводу до таймера AI Think і встановіть її властивість нового значення на 0.

Як створити гру Понг - hyperPong

Як створити гру Понг - hyperPong

Під розділом Трансформація помістіть два Отримати позиції і підключіть їх послідовно від другого виходу виконання таймера AI Think. Встановіть один з них для відстеження М'яча, а інший, що контролює ракетку. Для кращої читабельності ви також можете перейменувати ці поведінки. У вас тепер має бути щось схоже:

Як створити гру Понг - hyperPong

Таким чином, спочатку значення Напрямок руху встановлюється на 0, перш ніж продовжити з рештою поведінки AI.

Далі, з'ясуйте, чи м'яч рухається в бік ракетки і змініть напрямок. Встановіть два якщо поведінки відразу ж після цього і підключіть цю інформацію. Кожен із цих поведінок слід сконфігурувати для перевірки, чи знаходиться м'яч зліва чи справа. Запишіть їх в другому місці.

.....