Рефераты. Гра "Арканоід" на основі XNA Framework

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

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

Таким чином, на підставі всього вище наведеного можна побудувати загальну модель взаємодії гравців з системою (рис 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 - Об'єктна модель системи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.