Файл: 2d ойынын зірлеу мазмны Кіріспе Аналитикалы блім.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 153

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.2.5 Жобаны іске асыруға арналған жабдықтың сипаттамалары

  • Жобаны жүзеге асыру үшін келесі техникалық сипаттамалары бар Acer Aspire E1-570G ноутбугы пайдаланылды:

  • Операциялық жүйе: Windows 8.1 (64x);

  • процессор: Intel Core i3-3217U, 1.8 ГГц;

  • ЖЖҚ көлемі: 4 Гб;

  • графикалық карта: NVIDIA GeForce 720M 1 ГБ VRAM.


2.3 Жобаның өмірлік циклі, іске асыру құралдарын көрсете отырып, жобаны кезең - кезеңімен іске асырудың сипаттамасы

2.3.1 дизайн элементтерін жобалау және әзірлеу кезеңі

Ойынды дамытудың бірінші кезеңі эскиздік дизайн кезеңі болды. Ең алдымен, дамудың осы кезеңінде параметрді таңдау керек, яғни кез-келген сюжеттік тақырыпқа немесе әлемге (нақты немесе виртуалды) тиесілі. Сәрсенбіде приключение параметр ретінде таңдалды ғасырлық қиял әлемі. Дәл осы жағдайда классикалық roguelike ойындарының басым көпшілігі орындалды.

Көптеген классикалық roguelike ойындары псевдографиялық стильде жасалғандықтан немесе қарапайым және қарабайыр графиканы қолданғандықтан, ойында пиксельдік графиканы қолдану туралы шешім қабылданды. Біріншіден, графиканың бұл түрі қазіргі уақытта жоғары сұранысқа ие, екіншіден, пиксельдік графика roguelike жанрындағы ойын графикасына сыртқы жағынан жақын. Ойын үшін 32x32 PXL ажыратымдылығы таңдалды, яғни барлық тақтайшалар мен нысандар 32-ден 32 пиксельге дейін болады.

Басты кейіпкер ретінде рыцарь жасау туралы шешім қабылданды. Кейіпкерге зиян келтіру анимациясын жасау туралы шешім қабылданғандықтан, дулыға киген рыцарьдың көрінісі қарастырылмады. Осыдан кейін рыцарьдың бірнеше эскиздері (23-сурет) және бет пен қарудың бірнеше нұсқалары жасалды.


23-сурет-басты кейіпкердің сыртқы келбеті мен оның қаруының эскизі

Эскиздерге сәйкес екі түрлі рыцарь спрайттары жасалды (сурет - нок 24), олардың екіншісі таңдалды.



Бұл Спрайт үшін 3 түрлі анимация (RI - sunok 25) — тоқтап қалу анимациясы, яғни кейіпкердің орнында тұруы мен тыныс алуын имитациялайтын әдепкі объект анимациясы
, сондай - ақ рок-ки анимациясы және зақымдану.



25-сурет-кейіпкерлердің анимациялық парағы

Қиял-ғажайып параметр әртүрлі мифтік тіршілік иелерін пайдалануға мүмкіндік береді, сондықтан жау ретінде келесі тіршілік иелері таңдалды — зомби, елес және алып жылан. Олар үшін эскиздер жасалды (RI - sunok 26), оған сәйкес дұшпандардың спрайттары жасалды.


26-сурет-ойынға арналған жаудың эскиздері

Спрайт деректері үшін (27-сурет) бос тұру және шабуыл анимациясының кадрлары салынды.



27-сурет-жылан, зомби, елес Спрайттары

Үш түрдегі қоршау тақтайшалары (қабырғалар мен едендер) бейнеленген (сурет - нок 28) деңгейлердің әр түрлі көрінісін жасау үшін: тас зындан, құмды зындан, мұзды зындан, және плитка келесі деңгейге өту.

Бұл плиткалар жіксіз, бұл кез-келген көлемдегі орындарды жасауға мүмкіндік береді, сонымен бірге Спрайт буындары көзге түспейді



28-сурет-үш түрдегі тақтайшалар

Сусындардың (үлкен және кіші), алтын сөмкесінің (29-сурет) және кубоктың спрайттары бейнеленген.



29-сурет-сусындар мен алтын спрайттар

Бұл кезеңде сюжетті сипаттау қажет. Roguelike жанрындағы ойындарда әдетте терең сюжет болмайды және әдетте оның сипаттамасы ойыншының басында ойын оқиғаларына қысқаша кіріспесімен шектеледі. Осы жобада сюжетті баяндауға дәл осындай тәсіл қолданылды.

Ойыншы Жарық Кубогының сиқырлы артефактісін іздеуге баратын авантюрист рөлін алуы керек (30-сурет), ол-
рый зынданның тереңдігінде орналасқан және иесіне бұрын-соңды болмаған күш береді.



30-сурет – Жарық кубогы ойынының негізгі мақсаты

Ойында қолданылатын шрифт аркада машиналарының қаріптеріне еліктейді және әдетте ойын стиліне сәйкес келетін пиксельдік шрифт болып табылады.

2.3.2 Ойынның көрнекі бөлігімен жұмыс кезеңі



Спрайттарды ойын қозғалтқышына импорттағаннан кейін спрайт парағын бөлек спрайттарға кесу үшін қозғалтқышты пайдалану керек және олардан ойын нысандарын - Prefabs жасау керек. Батырды және жауларды жасау үшін бос нысанды жасау керек (31-сурет), анимациялардың бірінің кадрларын таңдап, оларды жасалған бос нысанға апару керек.



31-сурет – Бос объект құру

Қозғалтқыш анимацияны сақтауды ұсынады, анимациямен бірге объект үшін анимация контроллері жасалады (32-сурет), ол анимацияның бір күйден екінші күйге өтуін орнатуға мүмкіндік береді.


32-сурет - Ойнатқыш нысанының анимация контроллері

Содан кейін нысандарға Rigidbody 2D және Box Collider 2D компоненттерін қосу керек (33-сурет). Rigidbody 2D компоненті объектінің қозғалысын реттеуге мүмкіндік береді, ал Box Collider 2D объектінің соқтығысуы (яғни басқа нысандармен соқтығысуы) үшін жауап береді, бұл нысандардың бір-бірімен әрекеттесуіне мүмкіндік береді.


33-сурет - Player нысанының Box Collider 2D және Rigidbody 2D компоненттері
Плиткалар жасау үшін бос нысанды жасау керек, бірақ оған Sprite Renderer компонентін қосыңыз (34-сурет). Бұл компонентте қажетті тақтайшаның спрайтын таңдау керек. Егер нысанмен өзара әрекеттесу көзделсе, Box Collider 2D компонентін де қосу керек



34-сурет - 1-қабат тақтасының Sprite Renderer компоненті
Интерфейс элементтері жасалды - кейіпкердің өмірінің саны, жинаған ұпай саны (35-сурет), кейіпкердің деңгейі және кейіпкердің тәжірибесінің көлемі.



35-сурет - Ойыншының ұпайларын көрсетуге жауапты интерфейс элементі

Canvas интерфейс элементі жасалды (36-сурет), онда мәтіндік өрістер қосылды (әр мәннің өз өрісі бар), сценарийлер арқылы жаңартылды.



Элементтің көмегімен деңгей экранының дисплейі және кідірту мәзірі де конфигурацияланды (37-сурет).




37-сурет - Ойынды кідірту мәзірі
2.3.3 Сценарийді бағдарламалау кезеңі

Unity әзірлеу ортасы, оның көптеген параметрлері бар әртүрлі компоненттері көп болса да, олардың функционалдығы жоспарланған механиканы жүзеге асыру үшін жеткіліксіз, сондықтан сценарийлік бағдарламалауға жүгіну керек. Даму ортасы Бірлік болғандықтан сценарийлік бағдарламалау C# бағдарламалау тілінде жүзеге асырылады.

Барлығы ойында 13 сценарий бар және олардың әрқайсысының функционалдығы мен негізгі сценарийлердің әдістері төменде сипатталады.

Ойын әрбір жаңа деңгей жасалатын бірдей GameManager нысанын пайдаланады.

GameManager нысанына тіркелген 2 сценарий бар: GameManager және Board Creator.

GameManager сценарийі деңгейлер арасындағы ауысуларға, жаулар тізімін құруға және кезекке негізделген ойынға жауап береді. Бұл сценарий келесі әдістерді қамтиды:

  1. Оян. Әдіс ойын жүктелмес бұрын шақырылады, берілген деңгей үшін жаулар тізімін жүктейді. Деңгей экранын бірінші рет көрсету үшін InitGame әдісін шақырады («1-деңгей» деп белгіленген).

  2. OnLevelWasLoaded. Әдіс деңгейлерді санайды және екіншіден бастап деңгейде келесі экрандарды көрсету үшін InitGame әдісін шақырады.

  3. InitGame. Бұл әдіс ойын деңгейін өзгерту кезінде интерфейстің сәйкес мәтіндік элементінде (LevelText) деңгей атауын көрсетуге жауап береді және жаулар тізімін тазартады.

  4. HideLevelImage. Деңгейді өзгерту экранын жасырады.

  5. аңарту. Әдіс ойынның әрбір кадры деп аталады және жаулардың дәйекті қозғалысына жауап беретін IEnumerator интерфейсін шақырады.

  6. AddEnemyToList. Әдіс Enemy сценарийі арқылы жасалған жаулар тізімін қосады.

  7. Ойын аяқталды. Ойыншының жоғалуы туралы хабарламаны экранда көрсетуге жауапты, сонымен бірге өту бойынша шағын статистиканы (өткен деңгейлер мен жинаған ұпайлар саны) көрсетеді.

Осы әдістерге қосымша, GameManager сценарийінде MoveEnemies деп аталатын IE-нумератор интерфейсі бар. Бұл интерфейс ойыншының кезегінен кейін парақтағы әрбір қарсыласқа қозғалыс жасауға мүмкіндік береді. Әрбір қарсыластың кезегінен кейін қозғалу құқығы ойыншыға өтеді.

Ойыншы сценарийі кейіпкерге және оған қатысты барлық нәрсеге жауап береді. Келесі әдістерді қамтиды:

1.Бастау. Деңгей жүктеліп жатқанда ойыншы деректерін (денсаулығы, ұпайлары, т.б.) жүктейді.

2. OnDisable. Деңгейлер арасындағы ауысу кезінде ойнатқыш туралы ақпаратты сақтайды.

3. Жаңарту. Ойыншының қозғалу кезегі келгенін білу үшін әрбір кадрды тексереді, ойыншының диагональ бойынша қозғалуына тыйым салады.


4. Move әрекеті. MovingObject сценарийінің еншілес әдісі. Әдіс ойыншының қозғалуына мүмкіндік береді, ойыншының қозғалған дыбысын ойнатады.

5. OnCantMove. MovingObject сценарийінің еншілес әдісі. Әдіс ойыншының қабырғаларды бұзуына жауап береді.

6. EnemyAttack. MovingObject сценарийінің еншілес әдісі. Әдіс ойыншының жауларға шабуылына жауап береді.

7. OnTriggerEnter2D. Бұл әдіс әртүрлі ойын объектілерімен (мысалы, емдік сусындар немесе алтын) әрекеттесу кезінде іске қосуға жауап береді.

8. Қайта іске қосыңыз. Әдіс жаңа деңгейдің генерациясын тудырады.

9. HP жоғалтады. Ойыншы зақымданған кезде, ойыншының денсаулығын алып тастайды.

10. UpdatehpText. Ойыншының денсаулығындағы өзгерістерге әрекет етеді және денсаулық мөлшерін көрсетуге жауапты интерфейс элементін сәйкес мөлшерге өзгертеді.

11. UpdateScoreText. Алдыңғыға ұқсас, тек ойыншының денсаулығына емес, оның жинаған ұпай санына жауапты.

12.CheckIfGameOver. Ойыншының денсаулығы нөлге дейін төмендегенде, сәйкес хабарламасы бар экран пайда болады.

Жау сценарийі жауларға жауапты және келесі әдістерді қамтиды:

1.Бастау. GameManage сценарийіндегі тізімге жауларды қосады.

2. Оян. Құрамында GameManager нысанына сілтеме бар.

3. Move әрекеті. MovingObject сценарийінің еншілес әдісі. Әрбір жеке жаудың қозғалатынын (немесе бұл қарсыластың қанша айналым өткізіп жіберетінін) анықтайды.

4. Жауды жылжытыңыз. Батырды жаудың нысанасы деп белгілеп, жауды батырдың бағытына қарай жылжытады.

5. OnCantMove. MovingObject сценарийінің еншілес әдісі. Батырға жаудың шабуылына жауапты.

6. Залал алыңыз. Батырдан зақым алған кезде қарсыластың денсаулығының өзгеруін қадағалайды. Денсаулығы нөлге жеткенде, бұл нысанды ойын алаңынан жояды.

BoardCreator сценарийі (Қосымша В) ойын деңгейін және ондағы барлық нысандарды құруға жауапты.

Келесі кластарды қамтиды:

1. Оян. Құрамында GameManager бағдарламасына сілтеме бар.

2.Бастау. Деңгейлердің үш түрінің қайсысы жасалатынын анықтайды. Деңгейді құруды бастайды.

3.Бөлмелер мен коридорларды жасаңыз. Сәйкесінше Бөлме және Дәліз сценарийлерінде жасалған бөлмелер мен дәліздермен массивтер жасау және осы массивтерден зындан құру.

4. SetTilesValuesForRooms. Бөлме плиткалары үшін еден плиткасының түрін орнатады

қабат.

5. SetTilesValuesForCorridor. Сәйкес дәліз ұяшықтарына плитка түрін орнатады

la Floor.

6. Instant Tiles. Жиымнан плитка түріне (еден немесе қабырға) сәйкес деңгейде тақтайшаларды жасайды.