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 – загальна кількість пунктів, які є в меню.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


Информация о работе «Гра "Арканоід" на основі XNA Framework»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27117
Количество таблиц: 2
Количество изображений: 10

0 комментариев


Наверх