Гра "Арканоід" на основі XNA Framework

2



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

Харківський національний університет радіоелектроніки





Факультет комп’ютерних наук

Кафедра програмного забезпечення ЕОМ











КУРСОВА РОБОТА

з дисципліни

«Технології компонентного програмного забезпечення»

на тему:

«Гра «Арканоід» на основі XNA Framework»



























Харків 2010


Завдання

на курсову роботу студента



1. Тема роботи Реалізація гри «Арканоід» на основі XNA Framework.

2. Термін здачі студентом закінченої роботи

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

4. Зміст розрахунково-пояснювальної записки: Вступ, Аналіз предметної галузі, Постановка задачі, Опис концептуальної моделі, Опис програмної реалізації, Опис дослідної експлуатації, Висновок, Список використаних джерел.

5. Перелік графічного матеріалу: ER-діаграма, загальна архітектура програми, об’єктна модель.	

6. Дата видачі завдання 1.11.2009


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



Номер

Назва етапів виконання курсової роботи

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

Примітки

1

Обрання теми

1.11.2009

Виконано

2

Аналіз предметної галузі

2.11.2009

Виконано

3

Розробка постановки задачі

4.11.2009

Виконано

4

Об'єктна декомпозиція системи, яка проектується, її моделювання, розробка методів і алгоритмів, що використовуються, ознайомлення з необхідними технологіями

7.11.2009

Виконано

5

Кодування програмної системи

21.11.2009

Виконано

6

Тестування і доопрацювання розробленої програмної системи

5.12.2009

Виконано

7

Оформлення пояснювальної записки, графічного матеріалу

25.12.2009

Виконано

8

Перевірка виконаного проекту керівником, допуск до захисту

9.01.2010

Виконано

9

Захист курсової роботи

15.01.2010

Виконано



Студент 							**********

Керівник 							**********


РЕФЕРАТ



Пояснювальна записка: 30 ст., 11 рис., 10 джерел.

Метою курсового проектування є закріплення знань, здобутих під час вивчення дисципліни «Технології компонентного програмного забезпечення», набуття навичок з розробки програмного забезпечення на платформі .Net, ознайомлення із середою Visual Studio 2008, практична робота з XNA Game Studio.

Результат: після виконання задачі курсового проектування, здійснена програмна реалізація комп’ютерної гри «Арканоід», у якій використовується технологія Microsoft .Net з використанням додаткових інструментів розробки комп’ютерних ігор Microsoft XNA Framework та XNA Game Studio. 



Комп’ютерна гра, Арканоід, Microsoft .Net, XNA Framework, XNA Game Studio, Visual studio, Windows Life, XBOX 360.



The target of studying course “Technology of component software” is to learn more about developing in Visual Studio 2008 by C# and get new practicing skills. Also the course project must be done with using Microsoft XNA Framework and XNA Game Studio.

The result: after completing the task of course project, we got implemented software implementation of the computer game "Arkanoid", which uses Microsoft .Net technology with additional development tools, computer games Microsoft XNA Framework and XNA Game Studio.


Зміст



Перелік умовних скорочень

Вступ

Аналіз предметної галузі

Постановка задачі

Опис концептуальної моделі

3.1 UML-моделювання

Об’єктна модель

4. Опис програмної реалізації

4.1 Реалізація взаємодії між гравцем та системою

4.2 Алгоритм відбиття м’яча

4.2 Розробка бібліотеки

5. Опис дослідної експлуатації

5.1 Загальні відомості

5.2 Виклик і завантаження

5.3 Опис програмної експлуатації

Висновки

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


Перелік умовних скорочень



Microsoft .NET — програмна технологія, платформа для створення програмного забезпечення

Microsoft Visual Studio 2008 – середовище розробки програмного забезпечення

Microsoft XNA - набір інструментів, що полегшує розробку і управління комп'ютерними іграми

XNA Game Studio – середовище розробки комп'ютерних ігор за допомогою Microsoft XNA

UML - уніфікована мова об'єктно-орієнтованого моделювання


Вступ



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

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

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

Серед ігор всіх часів виділяються так звані культові гри. Зазвичай ці ігри набувають мільйони шанувальників, творці таких ігор нерідко стають мільйонерами. Як правило, ігри такого роду дуже повільно старіють - наприклад, сьогодні багато людей із задоволенням грають в ігри десятирічної давності, такі як «Арканоід».

Я вважаю, що за допомогою .Net технологій можна реалізувати функціональність гри «Арканоід» більш яскраво та повноцінно. Можливості, які надає Visual Studio 2008 з XNA Game Studio, дають змогу зручно та швидко розроблювати ігру.

Я обрав цю тему мого курсового проекту, тому що мені сподобалась ідея реалізувати одну з культових ігор на платформі .Net з використанням XNA Game Studio.

Отже метою цієї роботи являється розробка гри «Арканоід», з можливістю гри, як одного та і двох гравців одночасно на одному гральному полі, за допомогою Visual Studio 2008 з XNA Framework.


Аналіз предметної галузі



Предметна галузь, що я обрав, являє собою популярну гру «Арканоід», історія якої починається на прикінці 20-ого сторіччя. Гра пройшла довгий шлях розвитку від програми розробленої під MS DOS, до сучасної версії для сервісів Windows Life та Xbox 360 Life та різноманітних варіантів цієї гри створених для Internet браузерів за допомогою технологій Adobe Flash, Microsoft Silverlight та інших.

Існує багато програмних реалізацій цієї гри, а також багато модифікацій цієї гри з моменту випуску першої версії цієї гри. Але на цей момент, у цієї гри є недолік – це неможливість грати у цю гру у двох з друзями за допомогою таких сервісів, як Windows Life та Xbox Life.

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

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

Таким чином, на підставі всього вище наведеного можна побудувати загальну модель взаємодії гравців з системою (рис 1.1).





Рисунок 1.1 – Модель взаємодії гравців з системою

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

Для нормального функціонування на персональному комп’ютері гра не повинна також вимагати складної послідовності дій від користувача. Для нормального функціонування користувачеві лише необхідно мати встановлену операційну систему Windows та .Net Framework не нижче версії 3.0. 

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

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

В якості технології для програмної реалізації повинна бути взята технологія Microsoft XNA Framework, яка надає програмісту широкі можливості для реалізації та удосконалення гри будь-якої складності. Ця технологія також прагне звільнити розробку ігор від написання "повторюваного шаблонного коду" і об'єднати різні аспекти розробки ігор в одній системі.

Нижче приведена діаграма діяльності для прецеденту «Модель взаємодії гравця з системою під час гри» (рис 1.2)




Система



Користувач

Рисунок 1.2 – Модель взаємодії гравця з системою під час гри



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


2. Постановка задачі



Метою курсового проекту є реалізація гри «Арканоід» на основі XNA Framework, що буде виконувати такий список функцій:

а) Функціонування та відображення меню. Переключення між пунктами меню та виділення поточного пункту.

б) Читання з файлу розташування блоків та особливостей, які має кожний блок, такі як колір, кількість зіткнень із кулькою, щоб розбився блок або щоб блок зовсім не можливо було розбити.

в) Створення грального рівня. Відображення блоків на полі.

г) Пересування бити по полю. Функція дозволяє пересувати вліво або вправо биту у грі.

д) Функції кульки. Функція обробки зіткнень з іншими об’єктами, функція пересування по гральному полю з ладанним прискоренням, зміна напрямку кулі при зіткнені із межами вікна та іншими об’єктами.

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

є) Гра у двох. Функція створення додаткової бити на ігровому полі, з тими ж особливостями, що і першої, для надання можливості одночасної гри двох гравців в одному вікні.

ж) Реалізація функцій для ведення статистики. Функцію підрахунку кількості балів гравця, яка обчислює кількість балів, яку отримує він за розбиті блоки. Функція обліку життів, вона відповідає за об’єм життів та якщо вони закінчились, гра теж закінчується.

з) Звукові ефекти. Програвання звуків у грі, коли кулька зіткнеться із одним з блоків. 

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

к) Реалізація функцій для роботи з призначеними для користувача настройками для завдання розміру екрана, переключенням у повноекранний режим і назад у віконний, та інші.


3. Опис концептуальної моделі



3.1 UML-моделювання



UML - моделювання – досить важливий етап в проектуванні програми, що зображає сучасні тенденції в тій предметній галузі, яка досліджується в даному курсовому проекті, а саме в сфері IT- технологій, що з ним пов’язаний.

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





Рисунок 3.1 – Діаграма послідовностей для прецеденту «Запуск гри»


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

	Використання UML не обмежується моделюванням програмного забезпечення. Його також використовують для моделювання бізнес-процесів, системного проектування і відображення організаційних структур. 

UML дозволяє також розробникам програмного забезпечення досягти угоди в графічних позначення для представлення загальних понять (таких як клас, компонент, узагальнення (generalization), об'єднання (aggregation) і поведінка) і більше сконцентруватися на проектуванні та архітектурі.



3.2 Об’єктна модель системи



Далі наведена UML – діаграма класів, яка зображує об’єктну моделі комп’ютерної гри, яка реалізована в даному курсовому проекті. Вона описує структуру системи, показуючи її класи, їх атрибути і оператори, а також взаємозв’язки між цими класами.

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

Далі розглянемо об’єктну модель (рис. 3.3). На якій відображені класи гри та їх атрибути, методи і зв’язки між ними.



Рисунок 3.2 – Об’єктна модель системи


Система складається з таких класів:

GameObject - абстрактний клас-предок для всіх об’єктів, які відображаються на екрані, таких як Ball, Paddle, Block, які є основними об’єктами у грі;

Атрибути класу: 

Sprite - зображення об’єкту; 

Width - ширина об’єкта; 

Height - висота об’єкта; 

Position - позиція об’єкта на ігровому полі; 

Bounds - границі об’єкту; 

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

Клас Block атрибут BlockType, який відповідає за тип блоків. Вони можуть бути Easy – легкі, їх можна розбити с першої спроби, Normal – модно розбити з другої спроби, Hard – не можливо розбити.

Клас Ball має атрибут Velocity, він відповідає за прискорення кульки, вектор напрямку його руху. 

Та має методи:

Collide() метод, який перевіряє зіткнення блоків із кулькою.

ReflectHorizontal() – метод, змінює рух кулі після зіткнення із горизонтальною стороною.

ReflectVertical() - метод, змінює рух кулі після зіткнення із вертикальною стороною.

Move() – переміщує кулю, змінюючи її координати додаючи поточне прискорення.

Draw() – метод, виконує відображення кулі для нових позицій.

Game – клас, який відображає всі об’єкти на екрані;

Initialize() – ініціалізація.

LoadContent() – метод, в якому завантажуються графічні, аудіо об’єкти, які необхідні для гри.

UnloadContent() – метод визволення пам’яті від об’єктів, які завантажувалися при виконанні методу LoadContent().

Draw() – метод, який виконує відображення усіх об’єктів у вікні, які необхідно відобразити у вікні.

Update() – метод оновлення інформації об об’єктах, при зміні їх координат або властивостей.

Sound – клас, відповідальний за відтворення звуків та звукових спец ефектів;

Цей клас має один метод Play(), який програє звук удару, при зіткненні кульки з блоком.

Level – містить у собі інформацію про поточний рівень, про загальну кількість рівнів та має метод для створення нових рівнів. До його атрибутів входять дані про поточний рівень(CurrentLevel), та загальну кількість рівнів(Count).

Методи класу:

CreateLevel() – метод, який створює рівень, прочитавши з файлу координати розміщення блоків задає їх позиції на рівні, які необхідно буде відобразити.

NextLevel() – метод, створює наступний рівень.

Update() – метод, проводить зміни рівня, при знищенні блоків.

Draw() – метод, відображення рівня на гральному полі.

Menu – клас, відповідальний за відображення меню. Клас має декілька атрибутів, такі як Selected – це прапорець, перевірки чи обраний даний пункт; Name - ім’я пункту; Font - шрифт меню; Position - позиція де буде відображено меню; baseColor - колір пункту, який не обраний; selectedColor – колір у яким буде відображений обраний пункт меню; MenuList – загальна кількість пунктів, які є в меню. 

Методи цього класу:

- Update() – метод, який визивається при переключені з одного пункту меню на інший, та обчислює який пункт обраний на даний момент.

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

- SelectItem() - метод, який записує обраний пункт.

Player – клас, який описує гравця. 

Він має такі атрибути: 

Lives - кількість життів гравця; 

Level - рівень на якому знаходиться гравець; 

Points - кількість балів, які отримав гравець та прапорці, гравець пройшов рівень чи ні(Win), програв чи ні(Lose).

GameState – клас, відповідає ігрові стани.

Цей клас має такі атрибути: 

Game – гравець, зараз грає; 

Pause – зупинка гри; 

Menu - гравець, зараз в меню


4. Опис програмної реалізації



4.1 Реалізація взаємодії між гравцем та системою



В ході курсової роботи мною реалізована комп’ютерна гра «Арканоід». В розробці було вжито деякі особистості, на яких я би хотів зупинити увагу.

Реалізації взаємодії між гравцем та системою був розроблений за допомогою Microsoft XNA Game Studio, яка є додатком для Microsoft Visual Studio. XNA Game Studio - інтегроване середовище розробки для розробки ігор.

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

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

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

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



4.2 Алгоритм відбиття м’яча



Цей алгоритм був реалізований для розрахунку наступних координат м’яча при зіткненні з іншими об’єктами. За основу був взятий закон відбиття світла, за яким потім були реалізовані відповідні функції.

Закон відбиття світла - встановлює зміна напрямку ходу світлового променя в результаті зустрічі з відбиває (дзеркальної) поверхнею: падаючий і відбитий промені лежать в одній площині з нормаллю до поверхні, що відбиває в точці падіння, і ця нормаль ділить кут між променями на дві рівні частини. Широко розповсюджена, але менш точне формулювання «кут падіння дорівнює куту відбиття» не вказує точний напрямок відображення променя (рис. 4.1).





Рисунок 4.1 – Закон відображення



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



4.3 Розробка бібліотеки



Для використання класів в системі була розроблена спеціальна бібліотека «Arkanoid».

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

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


5. Опис дослідної експлуатації



5.1 Загальні відомості



Програма, яка реалізована як курсовий проект - цє комп’ютерна гра «Арканоід». Вона розроблена в середовищі Microsoft Visual Studio 2008 та Microsoft Game Studio на об’єктно-орієнтовній мові програмування С# під платформу Microsoft .Net 3.5 з використанням XNA Framework 3.1. 

Для того, щоб запустити мою програму необхідно мати на комп’ютері таке програмне забезпечення, як встановлений .Net Framework версії не нижче 3.0. 

Для запуску програми необхідно мати файл .exe та папку Content із необхідними графічними та звуковими файлами.

Програма разом з контентом займає 1,94 МБ пам’яті на жорсткому диску.

Характеристики персонального комп’ютера, необхідні для нормального функціонування програми:

- процесор Intel Celeron 800;

- 256 МБ ОЗП; 

- не менш ніж 10 МБ вільного місця на жорсткому диску;

- установлене на комп’ютері програмне забезпечення Microsoft .Net не нижче 3.0 та Microsoft XNA Framework 3.1;

- ОС Microsoft XP Professional Service Pack 2;

- монітор Samsung або ін.

Щоб програма функціонувала коректно, необхідно додатково встановити DirectX.


5.2 Виклик і завантаження



Щоб здійснити виклик програми, необхідно:

а) встановити на комп’ютері Microsoft .Net не нижче 3.0 та Microsoft XNA Framework 3.1;

б) скопіювати гру та папку з контентом, у якому знаходяться звукові та графічні об’єкти, до обраної директорії;

в) запустити exe файл.



5.3 Опис програмної експлуатації



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





Рисунок 5.1 – Головне меню гри


Після запуску гри гравець за допомогою клавіш «Вліво» та «Вправо» має можливість керувати битою.

У грі використовується три типа блоків:

Easy(синій блок) – м’яч розбиває його з першого разу;

Normal(зелений блок) - м’яч розбиває його з другої спроби;

Hard(чорний блок) – тип блоку, який м’яч не може розбити.

Усі типи блоків продемонстровані на рис. 5.2.





Рисунок 5.2 – Інтерфейс гри



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





Рисунок 5.3 – Рядок стану


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





Рисунок 5.4 – Повідомлення про поразку



Пілся того, як куля розіб’є усі блоки, крім блоків типу Hard, відображається повідомлення про закінчення рівня. (рис. 5.5)





Рисунок 5.5 – Рівень завершен



Якщо ж була вибрана гра для двох гравців, то на екрані відображається два повзунка. (рис .5.6)



Рисунок 5.6 – Гра для двох гравців


Висновок



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

В ході курсового проектування була проаналізована предметна область, вивчені принципи побудови комп’ютерних ігор за допомогою таких інструментів, як Microsoft XNA Framework та інші, вирішені проблеми, вказані в аналізі предметної області.

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

Виконавши курсовий проект, ми вивчили основні питання проектування і організації комп’ютерних ігор, спроектувавши програмну архітектуру комп’ютерної гри «Арканоід». Вивчили та отримали навички розробки додатків мовою об’єктно-орієнтовного програмування C# для платформи Microsoft .Net з використанням додаткових інструментів розробки комп’ютерних ігор Microsoft XNA Framework та XNA Game Studio. В кінцевому результаті отримали реалізацію усі поставлені задачі, які були сформульовані у другій частині записки. 

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

По підсумкам проведеної роботи ми отримали аналіз предметної галузі, на основі якого було створено готовий продукт, який вже може бути використаний у реальних умовах.

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



Рихтер Дж. Программирование на платформе Microsoft .NET Framework [Пер. c англ. — 2-е изд., испр.] — М.: Издательско-торговый дом Русская редакция, 2003- — 512 с.

Riemer Grootjans. XNA 2.0 Game Programming Recipes: A Problem-Solution Approach. – Apress, 2008. - 625 с.

Alexandre Lobão, Bruno Evangelista, José Antonio Leal de Farias. Beginning XNA 2.0 Game Programming: From Novice to Professional. – Apress, 2008. - 429 с.

Горнаков С. Г. Программирование компьютерных игр под Windows в XNA Game Studio Express. – М.: ДМК Пресс, 2008. – 384 с.

http://creators.xna.com/

http://msdn.microsoft.com/

http://mvp.support.microsoft.com/

http://www.compulenta.ru/

http://www.intuit.ru/

 http://www.xnadev.ru/