на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Гра "Арканоід" на основі XNA Framework
p align="left">г) Пересування бити по полю. Функція дозволяє пересувати вліво або вправо биту у грі.

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

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

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

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

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

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

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

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 - інтегроване середовище розробки для розробки ігор.

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

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

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

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

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. В кінцевому результаті отримали реалізацію усі поставлені задачі, які були сформульовані у другій частині записки.

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

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

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

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

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

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

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

5. http://creators.xna.com/

6. http://msdn.microsoft.com/

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

8. http://www.compulenta.ru/

9. http://www.intuit.ru/

10. http://www.xnadev.ru/

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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.