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/
0 комментариев