Гра "Арканоід" на основі 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() метод, виконує відображення кулі для нових позицій.

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

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

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

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

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

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

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

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