Гра "Арканоід" на основі XNA Framework

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ару, при зіткненні кульки з блоком.

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

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

  1. CreateLevel() метод, який створює рівень, прочитавши з файлу координати розміщення блоків задає їх позиції на рівні, які необхідно буде відобразити.
  2. NextLevel() метод, створює наступний рівень.
  3. Update() метод, проводить зміни рівня, при знищенні блоків.
  4. Draw() метод, відображення рівня на гральному полі.
  5. Menu клас, відповідальний за відображення меню. Клас має декілька атрибутів, такі як Selected це прапорець, перевірки чи обраний даний пункт; Name - імя пункту; Font - шрифт меню; Position - позиція де буде відображено меню; baseColor - колір пункту, який не обраний; selectedColor колір у яким буде відображений обраний пункт меню; MenuList загальна кількість пунктів, які є в меню.

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

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

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

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

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

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

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

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

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

  1. 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, відповідального за відображенн?/p>