Ім'я файлу: Бабчук Звит.doc
Розширення: doc
Розмір: 5787кб.
Дата: 05.05.2022
скачати
Пов'язані файли:
ReadMe.pdf

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЖИТОМИРСЬКИЙ ТЕХНОЛОГІЧНИЙ КОЛЕДЖ

КИЇВСЬКОГО НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ

БУДІВНИЦТВА І АРХІТЕКТУРИ
Циклова комісія інформаційних технологій

КУРСОВА РОБОТА
з дисципліни «Конструювання програмного забезпечення»

на тему «Розробка 2D-гри»

Виконав студент 4 курсу, групи П43

спеціальності 121 «Інженерія

програмного забезпечення»

Бабчука Богдана Михайловича
Керівник курсової роботи спеціаліст

Кравець Іван Вікторович

Склад комісії захисту курсової роботи:

Голова комісії __________ Л.А. Білогор

Члени комісії __________ М.В. Герасимчук

__________ І.В. Кравець

Оцінка виконання та захисту роботи __________

ЖИТОМИР – 2020

Міністерство освіти і науки України

Житомирський технологічний коледж

Київського національного університету будівництва і архітектури
Відділення інформаційних технологій

Циклова комісія інформаційних технологій

Освітньо-кваліфікаційний рівень – молодший спеціаліст

Галузь знань 12 "Інформаційні технології"

Спеціальність 121 "Програмна інженерія"


ЗАТВЕРДЖУЮ

Голова циклової комісії
________ К.О. Журавська

"_7_" _вересня_ 2020 року

З А В Д А Н Н Я

НА КУРСОВИЙ ПРОЕКТ СТУДЕНТУ
Бабчуку Богдану Михайловичу
1. Тема " Розробка 2D-гри "

керівник проекту Кравець І.В. спеціаліст

2. Дата захисту проекту "_18__" ____листопада____ 2020 року

3. Вихідні дані до проекту середовище програмуванняMSVisualStudio, мова програмування C#,середовищепрограмування Unity_________________________

(наприклад: паспорт обладнання, схеми, технологічні карти)

4. Зміст пояснювальної записки

Вступ

Розділ 1. Теоретична частина

1.1 Аналіз задачі, засобів та методів її вирішення

1.2 Аналіз існуючого програмного забезпечення за тематикою курсової роботи

1.3 Технічне завдання на курсову роботу

Розділ 2. Розробка програми

2.1 Проектування загального алгоритму роботи програми

2.2 Розробка функціональних алгоритмів роботи програми

2.3 Розробка програмного забезпечення

Розділ 3. Інструкція користувачу

3.1 Опис роботи з програмним додатком

3.2 Тестування роботи програмного забезпечення

Висновки

Перелік джерел посилання

Додатки

5. Дата видачі завдання "14" вересня 2020 р.

КАЛЕНДАРНИЙ ПЛАН




з/п

Назва етапів

курсової роботи

Строк виконання етапів роботи

% виконання

1

Вступ.

12.10.2020 р.

5

2

Аналіз проблематики, методів та засобів вирішення задачі

19.10.2020 р.

10

3

Проектування та розробка програмного забезпечення

9.10.2020 р.

30

4

Опис роботи з програмним додатком та його тестування

7.11.2020 р.

25

5

Висновки.

12.11.2020 р.

10

6

Перелік посилань.

13.12.2020 р.

5
















Всього




100

Студент _________ Б.М. Бабчук
Керівник роботи ___________ І.В. Кравець





з/п

П.І.Б.

Шифр

для заповнення штампів

пояснювальної записки

курсової роботи

18

Бабчук Богдан Михайлович

121.12.62.209.02-ПЗ

РЕФЕРАТ

Пояснювальна записка до курсової роботи на тему "Розробка 2D-гри" складається з переліку умовних скорочень, вступу, трьох розділів, висновків, списку використаної літератури та додатку.

Текстова частина викладена на 28 сторінках друкованого тексту.

Пояснювальна записка має 5 сторінки додатків. Список використаних джерел містить 6 найменувань і займає 1 сторінку. В роботі наведено 27 рисунків. Загальний обсяг роботи – 34 сторінок.

У першому розділі проведено аналіз проблем, методів та засобів вирішення встановленої задачі.

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

У третьому розділі написано інструкцію користувача та описано етап тестування гри.

Висновок містить в собі результати виконаної роботи створення гри

У додатку представлений лістинг розроблиной гри.

ЗМІСТ


Відділення інформаційних технологій 2

2

ЗАТВЕРДЖУЮ 2

З А В Д А Н Н Я 2

НА КУРСОВИЙ ПРОЕКТ СТУДЕНТУ 2

6

ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ 7

ВСТУП 8

РОЗДІЛ 1 ТЕОРЕТИЧНА ЧАСТИНА 9

1.1Аналіз задачі, засобів та методів її вирішення. 9

1.3 Технічне завдання на курсову роботу 16

РОЗДІЛ 2 ПРОЕКТУВАННЯ ТА РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 18

2.1 Проектування загального алгоритму роботи програми 18

2.2 Розробка функціональних алгоритмів роботи програми 18

В функціональной частині в програмі знаходиться 15 скриптів які відповідають за все що є в грі: монети, рух персонажа,рух ворогів,збір монет та здоров`я,стрільбу персонажа та ворогів. 23

РОЗДІЛ 3 ОПИС РОБОТИ З ПРОГРАМНИМ ДОДАТКОМ ТА ЙОГО ТЕСТУВАННЯ 24

3.1 Опис роботи з програмним додатком 24

3.2 Тестування роботи програмного забезпечення 24

ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ



VS – Visual Studio

2D - 2-dimensional

ПК- Персональний комп`ютер

MacOS - пропріетарна операційна система виробництва Apple

ОЗУ – оперативна пам’ять

ОС – операційна система

ПЗ - програмне забезпечення


ВСТУП


Історія відеоігор починається у 1947 році, коли було написано першу ігрову комп'ютерну програму. Власне відеоігри, які використовують відео для взаємодії із гравцем, зародилися в 1960-і. Частиною поп-культури відеоігри стали в кінці 1970-х з поширенням аркадних ігрових автоматів і домашніх ігрових приставок та ПК.

Зараз на 2020 рік є дуже багато культових відеоігор, які дають людям змогу забуть про повсякденні проблеми.Я взяв саме цю курсову роботу тому що у мене є хоббі до малювання та программування ігр. Тема моєї курсової роботи “Пиксельна 2д гра”,а 2д гру тому, що для розробки 3д гри потрібно набагато більше часу якого не було.Для розробки моєї гри мене вдохновила гра “Mario”, але вже з удосконаленою графікою та іншим сюжетом.В майбутньом сюжет буде все більше насиченим і цікавішим для гравця.

Для розробки цієї гри я взяв графічний движок Unity,якій для мене показався дуже простим у написані,і розробки моєї ігри.Є ще багато графічних движків різних у інтерфейсі та функціоналу наприклад такі як Unreal Engine 4, CryEngine, Corona SDK та інші.

РОЗДІЛ 1 ТЕОРЕТИЧНА ЧАСТИНА


1.1Аналіз задачі, засобів та методів її вирішення.

Данна гра була розроблена на графічном движку Unity,і для написання скриптів використовувалася мова програмування C#, гру я назвав “Pixtrick – це 2Д платформерна гра, на даном етапі розробки у гравця є мета зібрати монети, але не все так просто цьому будуть передшкоджати вороги.

Unity — міжплатформенна середовище розробки компьютерных игр, розроблена американськой компанією Unity Technologies. Unity дозволяє створювати додатки, які роблять більш чім 25 різних платформах, включаючи ПК,
ігрові консолі, мобільні пристрої, інтернет-додатки та інші. Випуск Unity відбувся в 2005 году и с того времени іде постійте удосконалення.

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

Unreal Engine 4 - Unreal Engine — игровой движок, разрабатываемый и поддерживаемый компанией Epic Games. Первой игрой на этом движке был шутер от первого лица Unreal, выпущенный в 1998 году. Перша гра, створена на цьому рушії — Unreal, яка з'явилася 1998 року. З тих пір різні версії цього ігрового рушія використали в більш ніж сотні ігор, серед яких Deus Ex, Lineage II, Thief: Deadly Shadows, Postal 2, серіях ігор Brothers in Arms, серія ігор Splinter Cell, Tom Clancy's Rainbow Six, а також у відомих ігрових серіях Unreal і Unreal Tournament від самих Epic Games. Пристосований у першу чергу для шутерів від першої особи, рушій використовувався й при створенні ігор інших жанрів.

CryEngine - ігровий движок, створений німецькою приватною компанією Crytek в 2002 році. CryEngine використовується у всіх іграх, розроблених самою Crytek, починаючи з Far Cry і по теперішній час; розробники послідовно допрацьовували движок, випускаючи нові версії. Crytek також пропонує движок для ліцензування іншим компаніям. Французька компанія Ubisoft використовує власну, сильну модифіковану версію движка під назвою Dunia Engine.С 21 серпня 2013, новий CryENGINE не ідентифікують номерами версій. Причина такої зміни, за словами компанії, в тому, що з часу релізу CryENGINE 3, движок зазнав значних змін і більш не є тим же самим двигуном, а постійні оновлення та поліпшення будуть підтримувати його на високому рівні конкурентоспроможності. Навесні 2016 року, з випуском CryEngine V, компанія перейшла на модель поширення «плати скільки хочеш», яка передбачає можливість вільно використовувати движок для розробки ігор (вільне використання для неігрових додатків заборонено), код CryEngine був опублікований (під проприетарной ліцензією) на GitHub.

C# - об'єктно-орієнтована мова програмування. Розроблено в 1998-2001 роках групою інженерів компанії Microsoft під керівництвом Андерса Хейлсберг і Скотта Вільтаумота як мову розробки додатків для платформи Microsoft .NET Framework. Згодом був стандартизований як ECMA-334 і ISO / IEC 23270.C # відноситься до сім'ї мов з C-подібним синтаксисом, з них його синтаксис найбільш близький до C ++ і Java. Мова має статичну типізацію, підтримує поліморфізм, перевантаження операторів (в тому числі операторів явного і неявного приведення типу), делегати, атрибути, події, змінні, властивості, узагальнені типи і методи, ітератори, анонімні функції з підтримкою замикань, LINQ, виключення, коментарі в форматі XML.В грі “ Pixtrick ” я розробив камеру по координатам , яка прив`язана до гравця, тобто камера показує тільки зону гравця,тобто,поки сам гравець не почне рухатись камера також не буде рухаться,а як тільки гравець почне рух,камера буде йти за ним.

1.2 Аналіз існуючого програмного забезпечення за тематикою курсової роботи

Гра “Pixtrick” – це 2D platformer.

Платформер (англ. Platformer), також відомий як платфо́рмна гра (англ. Platform game) — жанр відеоігор, ігровий процес в якому складається зі стрибків персонажа по різноманітних платформах (звідси і назва) та через перешкоди, збирання предметів, звичайно необхідних для завершення рівня.

В платформерах гравець керує персонажем, який рухається рухомими чи нерухомими платформами різної висоти. У традиційних двомірних платформерах персонаж рухається зліва направо, деякі ігри дозволяють рухатися в будь-якому напрямку (зазвичай це загадки). Інколи рух можливий тільки вперед і не залежить від бажання гравця (автоскроллінг). Цей елемент рідко зустрічається у всій грі, найчастіше в окремих епізодах, де персонаж, наприклад, повинен тікати від небезпеки. Деякі предмети, звані пауер-апами (англ. power-up), наділяють керованого гравцем персонажа додатковими корисними характеристиками, яка як правило вичерпується з часом (наприклад: силове поле, прискорення, збільшення висоти стрибків). Колекційні предмети, зброя і пауер-апи збираються зазвичай простим дотиком персонажа і для застосування не вимагають виконання спеціальних дій з боку гравця. Рідше предмети збираються в «інвентар» героя і застосовуються спеціальною командою (така поведінка більш характерна для аркадних головоломок).

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

Ігри цього жанру, за деякими винятками, характеризуються нереалістичністю, мальованою мультиплікаційною графікою. Героями таких ігор зазвичай бувають міфічні істоти (наприклад дракони, гобліни) або антропоморфні тварини. Ігри цього жанру, за деякими винятками, характеризуються нереалістичністю, мальованою мультиплікаційною графікою. Героями таких ігор зазвичай бувають міфічні істоти (наприклад дракони, гобліни) або антропоморфні тварини.

Платформери з'явилися на початку 1980-х і стали тривимірними ближче до кінця 1990-х. Через деякий час після утворення жанру у нього з'явилася дана назва, що відбиває той факт, що в платформерах геймплей сфокусований на стрибках по платформах на противагу стрільбі. Правда, у багатьох платформерах присутня стрілецька зброя, в таких, наприклад, як Blackthorne або Castlevania.

Першими платформерами були: Frogs (1978) де були стрибки, але не було платформ і Space Panic (1980) де були платформи, але не було стрибків. В Donkey Kong (1981) вперше з'явився скроллінг. Першим справжнім платформером стала гра Pitfall, але справжня слава прийшла до жанру після виходу Super Mario Bros. 1985 року. З того часу двовимірні платформери продовжують випускати до цих пір на різних ігрових платформах.



Рис. 1.1 – Ігровий процес гри “ Frogs ” 1978 року створення.
Перші плаформери були обмежені статичними ігровими світами, які займали один ігровий екран, а герой зображався в профіль. Персонаж лазив вгору і вниз по сходах або стрибав з платформи на платформу, часто б'ючись з супротивниками і збираючи пауер-апи. Незабаром процес проходження рівня перестав бути в основному вертикальним і змінився на горизонтальний з появою довгих багатоекранних ігрових світів з прокруткою. Вважається, що початок цьому поклала випущена фірмою Activision в 1982 році гра Pitfall! для консолі Atari 2600і її продовження Jet Set Willy (1984) були найбільш популярними платформер для тодішніх домашніх комп'ютерів.



Рис.1.2 – Ігровий процес гри “. Manic Miner”1983 р.

У 1985 році фірма Nintendo випустила для приставки Nintendo Entertainment System революційний платформер Super Mario Bros. На відміну від попередника, Mario Bros. (1983), рівень займав декілька екранів. Гра мала великі і складні рівні, і стала прикладом для наступних творців ігор, навіть сьогодні багато людей вважають її однією з найкращих відеоігор. Гра мала фантастичну популярність і продавалася величезними тиражами. Для багатьох людей вона стала першим в їхньому житті платформером, а головний герой, водопровідник Маріо, став символом фірми Nintendo.



Рис.1.3 – Ігровий процес гри “ Mario ” 1985 р.

1987 вийшла Castlevania, яка мала незвичайний для плаформерів фентезійний антураж і похмуру атмосферу. 1988 на Apple II була зроблена гра Prince of Persia, яка вирізнялася глибиною ігрового процесу і графікою поряд з численними пастками та оригінальними головоломками.

У 1991 Sega випустила Sonic the Headhog, першу з другої, поряд з Mario, найуспішнішої серії платформерів. Гра ефективно використовувала можливості 16-бітної консолі, завдяки чому була одним з найшвидших платформерів свого часу.



Рис.1.3 – Ігровий процес гри “ Sonic the Headhog ” 1991 р.

До 2000-х чимало класичних серій перейшли у 3D, що не завжди було схвально зустрінено гравцями. По сьогодні платформери користуються популярністю і випускаються для численних ігрових платформ. З модою на інді-ігри повернулися двовимірні платформери, з'явилися так звані 2.5D плаформери, де персонаж переміщується в одній площині, але сам рівень є тривимірним (Deadlight, Sonic the Headhog 4).



Рис.1.3 – Ігровий процес гри “ Sonic the Headhog 4” 2010 р.

1.3 Технічне завдання на курсову роботу


Основою для розробки: Основою для розробки курсової роботи є завдання на курсову роботу.

Призначення розробки:програма призначена тільки для одного гравця.

Вимоги до програмного засобу:гра повинна працювати на всіх операційних системах крім MacOS, повинні додаватись/відніматися сердця здоровья.

Програма повинна виконувати наступні функції:

  1. Повинна бути наявність ігрового процесу на єкрані.

  2. Підібрані монети повинні зберігатись на рахунку гравця.

  3. Поповнення та віднімання життя гравця.

  4. Повинно бути меню, та пауза.

В программі повині працювати такі клавіши,як w,a,s,d переміщення персонажа,ПКМ – постріл гравця ,гравець повинен запускати програму тільки в одно користувацькому режимі, мають буду відповідні сцени до початку і завершення гри.
Мінімальні системні вимоги

  • ОС:Windows 7

  • Процессор:Intel Core i3-1300H(1.6 GHz) / AMD Athlon XP 1600+

  • Память:2048 Mb

  • Відеокарта: Gigabyte GeForce 210 1024Mb/ AMD Radeon Sapphire RX 550 2Gb / DirectX 9

  • Місця на дискі:350 Mb

Рекомендуємі системні вимоги

  • Windows 10

  • Процессор:Intel Core i3-9300H (2.5 GHz) / AMD Ryzen 3

  • Память:4096 Mb

  • Відеокарта:NVIDIA GeForce 950mx / AMD Radeon Sapphire RX 470 4Gb / DirectX 11

  • Місце на дискі: 350 Mb


РОЗДІЛ 2 ПРОЕКТУВАННЯ ТА РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

2.1 Проектування загального алгоритму роботи програми


В рамках проекту були вивчені основні технології створення двовимірних ігор з жанром “Platformer”.

  • Для програмної реалізації гри було обрано такі технології:

  • Ігровий движок - Unity, легкий в освоєнні, з зручним призначеним для користувача інтерфейсів, безліччю різноманітних бібліотек і уроків, а також підтримує три сценарних мови: C #, JavaScript (модифікація), Boo;Мова програмування - С #, призначений для роботи з малими масивами даних;



Графічний інтерфейс користувача - сцени і персонажі 2D-ігри - будуть намальовані в наступних графічних редакторах: Adobe Photoshop і Aseprite. Після запуску гри завантажується головне меню гри,де ми можемо вийти з гри чи запустити її.

2.2 Розробка функціональних алгоритмів роботи програми


Алгоритм ( латинізов. Algorithmi за араб. ім'ям перського математика аль-Хорезмі) — набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Запис алгоритму на формальній мові називається програмою. Іноді саме поняття алгоритму ототожнюється з його записом, так що слова «алгоритм» і «програма» - майже синоніми. Невелике розходження полягає в тому, що під алгоритмом, як правило, розуміють основну ідею його побудови. Програма ж завжди пов'язана із записом алгоритму на конкретній формальній мові/

На схемі я відобразив блок схему алгоритму гри “Pictrick”.



Рис.2.1 – Алгоритм роботи програми, від початку до кінця

2.3 Розробка програмного забезпечення

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



Рис. 2.2 – Вигляд папки „Assets” в програмі Unity

В кожній з папок росорторований матеріал якій використовується в грі. Так в папці “animations” розташовані всі анімації персоніжа,ворогів та монет.



Рис. 2.3 – Вигляд папки „ Animations ” в програмі Unity

В папці “Scene” розтавшовані сцени які використані в грі.



Рис. 2.4 – Вигляд папки „ Scene ” в програмі Unity

В папці “Scripts” розташовані всі скрипти, які підключені до персонажа, монет,ворогів чи лічильника здоров`я, монет.



Рис. 2.4 – Вигляд папки „ Scripts ” в програмі Unity
Візуальна частина дуже важлива в розробці гри до цієї частини потрібно відноситись уважно. Майже всі спрайти були намальовані власноруч задопомогою програми Adobe Photoshop.

Так на рисунку 2.5 намальований персонаж в русі по кадрово



Рис.2.5 – Вигляд руху персонажа

Вигляд ворога в русі.



Рис.2.6 – Вигляд ворога при русі

Задній фон меню був зроблений з декількох спрайтів і добавлені кнопки



Рис.2.7 – Загальний вигляд главного меню



Рис.2.8 – Загальний вигляд складови фона меню

Було прийнято рішення зробить щоб камера була тільки на персонажі а не на всій локації.



Рис.2.9 – Вигляд всієї локації



Рис.2.10 – Що баже гравець

На інтерфейсі знаходиться шкала здоров`я та лічильник монет зображено на рис 2.11 та 2.12



Рис.2.11 – Лічильник здоров`я



Рис.2.12 – Лічильник монет

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



Рис.2.13 – Сцена з виграшом
В функціональной частині в програмі знаходиться 15 скриптів які відповідають за все що є в грі: монети, рух персонажа,рух ворогів,збір монет та здоров`я,стрільбу персонажа та ворогів.



Рис.2.14 – Вигляд папки „ Scripts ” в програмі Unity

РОЗДІЛ 3 ОПИС РОБОТИ З ПРОГРАМНИМ ДОДАТКОМ ТА ЙОГО ТЕСТУВАННЯ

3.1 Опис роботи з програмним додатком


Коли ми отримали всю необхідку інформацію щодо алгоритмів та налаштування проекту перейдемо до опису самої гри.

Призапуску гри ми попадаємо на головне меню:



Рис.3.1 – Головне меню

Коли нажимаємо на кнопку “Quit” то ми виходимо з гри.А при нажиманні на кнопку “Play” ми переходимо з меню до гри.

3.2 Тестування роботи програмного забезпечення


Як тільки ми зайшли до гри потрібно перевірити чи працюють кпоки руху A,D та Space для стрибка:



Рис.3.2 – Перевірка кнопки A



Рис.3.3 – Перевірка кнопки A



Рис.3.4 – Перевірка кнопки Space.

Далі провіремо стрільбу на праву кнопку мишки



Рис.3.4 – Перевірка кнопки ПКМ

Коли у нас все працює можемо підніматися по платформах вбивати ворогів нажавши на праву кноку миши та націлитись на ворога як показано на рисунку 3.5



Рис.3.5 – Смерть ворога від персонажа

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



Рис.3.6 – Смерть ворога від персонажа

Якщо ви втратили здоров`я то ви пожете поповнити його спеціальним предметом «седце», коли ви в нього зайдете воно дасть вам одну шкалу здоров`я


Рис.3.7 – Момент поповненя здоров`я персонажа предмето «сердце»

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



Рис.3.7 – Сцена з перемогою
ВИСНОВКИ

Під час виконання курсової роботи було спроєктовано і реалізовано 2d Platformer під назвою “Pictrick”.

Метою даної роботи є проектування концепту гри і її розробка.

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

Розробка власного проекту з нуля дозволила отримати величезний досвід у багатьох областях, пов'язаних з проектуванням і реалізацією ігор, таких як: створення концепції гри, опрацювання ігрових механік, створення концепт артов для персонажів і локацій гри, створення анімацій, написання алгоритмів і кодинг, збірка і настройка проекту в ігровому движку. Використовуючи навички програмування на C #, розробки інтерфейсів, цифрового малювання, теоретичних знань з проектування концепції гри, набуті під час навчання в коледжі, була створена комп'ютерна гра в жанрі платформер. Для розробки були використані ігровий движок Unity, середовище програмування Visual Studio і графічні редакторів Adobe Photoshop.

ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1. Герберт Шилдт - C# 4.0. Полное руководство, 2011. – 1056 с

  2. Learn Unity3D Programming with UnityScript: Unity's JavaScript for Beginners Джанин Сувак - 5 августа 2014 г.

  3. Unity Game Development Cookbook: Essentials for Every Game-Тим НугентПарис Баттфилд-АддисонДжон Маннинг - 2019 г.

  4. Unity for Absolute Beginners - Сью БлэкманДженни Ванг- 13 июня 2014 г.

  5. Vikipedia - https://ru.wikipedia.org/wiki

  6. Unity - https://unity.com/ru/learn



ДОДАТКИ


Лістинг програмного коду:

A)Character:

using UnityEngine;

using System.Collections;

using UnityEngine.SceneManagement;
public class Character : Unit

{

[SerializeField]

private int lives = 4;
public int Lives

{

get { return lives; }

set

{

if (value < 4) lives = value;

if(value <1)

{

SceneManager.LoadScene(0);

}

livesBar.Refresh();

}

}

private LivesBar livesBar;
[SerializeField]

private float speed = 3.0F;

[SerializeField]

private float jumpForce = 15.0F;
private bool isGrounded = false;
private Bullet bullet;
private CharState State

{

get { return (CharState)animator.GetInteger("State"); }

set { animator.SetInteger("State", (int)value); }

}
new private Rigidbody2D rigidbody;

private Animator animator;

private SpriteRenderer sprite;
private void Awake()

{

livesBar = FindObjectOfType();

rigidbody = GetComponent();

animator = GetComponent();

sprite = GetComponentInChildren();
bullet = Resources.Load("Bullet");

}
private void FixedUpdate()

{

CheckGround();

}
private void Update()

{

if (isGrounded) State = CharState.Idle;
if (Input.GetButtonDown("Fire1")) Shoot();

if (Input.GetButton("Horizontal")) Run();

if (isGrounded && Input.GetButtonDown("Jump")) Jump();

}
private void Run()

{

Vector3 direction = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
sprite.flipX = direction.x < 0.0F;
if (isGrounded) State = CharState.Run;

}
private void Jump()

{

rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);

}
private void Shoot()

{

Vector3 position = transform.position; position.y += 0.8F;

Bullet newBullet = Instantiate(bullet, position, bullet.transform.rotation) as Bullet;
newBullet.Parent = gameObject;

newBullet.Direction = newBullet.transform.right * (sprite.flipX ? -1.0F : 1.0F);

}
public override void ReceiveDamage()

{

Lives--;
rigidbody.velocity = Vector3.zero;

rigidbody.AddForce(transform.up * 8.0F, ForceMode2D.Impulse);

}
private void CheckGround()

{

Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.3F);
isGrounded = colliders.Length > 1;
if (!isGrounded) State = CharState.Jump;

}
private void OnTriggerEnter2D(Collider2D collider)

{
Bullet bullet = collider.gameObject.GetComponent();

if (bullet && bullet.Parent != gameObject)

{

ReceiveDamage();

}

}

}

public enum CharState

{

Idle,

Run,

Jump

}

B) MoveableMonster

using UnityEngine;

using System.Collections;

using System.Linq;
public class MoveableMonster : Monster

{

[SerializeField]

private float speed = 2.0F;
private Vector3 direction;


private SpriteRenderer sprite;
protected override void Awake()

{

sprite = GetComponentInChildren();

}
protected override void Start()

{

direction = transform.right;

}
protected override void Update()

{

Move();

}
protected override void OnTriggerEnter2D(Collider2D collider)

{

Unit unit = collider.GetComponent();
if (unit && unit is Character)

{

if (Mathf.Abs(unit.transform.position.x - transform.position.x) < 0.3F) ReceiveDamage();

else unit.ReceiveDamage();

}

}
private void Move()

{

Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position + transform.up * 0.5F + transform.right * direction.x * 0.5F, 0.1F);
if (colliders.Length > 0 && colliders.All(x => !x.GetComponent())) direction *= -1.0F;

transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);

}

}

C) ShootableMonster

using UnityEngine;

using System.Collections;
public class ShootableMonster : Monster

{

[SerializeField]

private float rate = 2.0F;

[SerializeField]

private Color bulletColor = Color.white;
private Bullet bullet;
protected override void Awake()

{

bullet = Resources.Load("Bullet");

}
protected override void Start()

{

InvokeRepeating("Shoot", rate, rate);

}
private void Shoot()

{

Vector3 position = transform.position; position.y += 0.5F;

Bullet newBullet = Instantiate(bullet, position, bullet.transform.rotation) as Bullet;
newBullet.Parent = gameObject;

newBullet.Direction = -newBullet.transform.right;

newBullet.Color = bulletColor;

}
protected override void OnTriggerEnter2D(Collider2D collider)

{

Unit unit = collider.GetComponent();
if (unit && unit is Character)

{

if (Mathf.Abs(unit.transform.position.x - transform.position.x) < 0.3F) ReceiveDamage();

else unit.ReceiveDamage();

}

}

}
D) Bullet

using UnityEngine;

using System.Collections;
public class Bullet : MonoBehaviour

{

private GameObject parent;

public GameObject Parent { set { parent = value; } get { return parent; } }
private float speed = 10.0F;

private Vector3 direction;

public Vector3 Direction { set { direction = value; } }
public Color Color

{

set { sprite.color = value; }

}
private SpriteRenderer sprite;
private void Awake()

{

sprite = GetComponentInChildren();

}
private void Start()

{

Destroy(gameObject, 1.4F);

}


private void Update()

{

transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);

}
private void OnTriggerEnter2D(Collider2D collider)

{

Unit unit = collider.GetComponent();
if (unit && unit.gameObject != parent)

{

Destroy(gameObject);

}

}

}



скачати

© Усі права захищені
написати до нас