- •1 Опис предметної області
- •1.1 Постановка задачі
- •1.2 Історія та правила гри
- •1.3 Основні відомості про бібліотеку OpenGl
- •2 Проектування програмного забезпечення
- •2.1 Загальна інформація про uml
- •2.2 Діаграма варіантів використання
- •2.3 Діаграма класів
- •3 Керівництво користувача та опис програми
- •3.1 Основні функції OpenGl
- •3.2 Архітектура гри та малювання основних об’єктів на полі.
- •3.3 Основні функції гри
- •Обробка подій
- •Тестування гри, системні вимоги
- •3.5 Керівництво користувача
- •Висновок
- •Список джерел інформації
- •Додаток а
2.3 Діаграма класів
Діаграма класів — статичне представлення структури моделі. Відображає статичні (декларативні) елементи, такі як: класи, типи даних, їх зміст та відношення. Діаграма класів також може містити позначення для пакетів та для вкладених пакетів. Також, діаграма класів може містити позначення деяких елементів поведінки, однак, їх динаміку розкрито в діаграмах інших типів.
Діаграми класів створюються при логічному моделюванні ПЗ і служать для наступних цілей:
Моделювання даних. Аналіз предметної області дозволяє виявити основні характерні для неї сутності та зв'язки між ними. Це зручно моделюється за допомогою діаграм класів. Ці діаграми є основою для побудови концептуальної схеми бази даних.
Для представлення архітектури ПС. Можна виділити архітектурно значущі класи і показати їх на діаграмах, що описують архітектуру ПС
Для моделювання навігації екранів. На таких діаграмах показуються прикордонні класи та їх логічний взаємозв'язок. Інформаційні поля моделюються як атрибути класів, а керуючі кнопки - як операції і відносини.
Для моделювання логіки програмних компонент (буде описано в наступних статтях).
Для моделювання логіки обробки даних.
Діаграму класів, побудовану на основі завершеного програмного коду, зображено на рисунку 2.3
3 Керівництво користувача та опис програми
3.1 Основні функції OpenGl
Майже кожна програма, що використовує OpenGL, починається зі створення вікна, у якому буде відбуватися відображення. Далі програміст може вільно використовувати команди і операції OpenGL.
Ініціалізація вікна складається з налаштувань відповідних буферів кадру, початкового положення і розмірів вікна, а також імені вікна.
Метод glutInitWindowSize (windowWidth, windowHeight) використовується для того, щоб задати початкові розміри вікна.
Метод glutSetWindow(m_wnd = glutCreateWindow(title)); задає назву вікна та візуалізує його на екрані.
Потім методи:
glutDisplayFunc(display);
glutIdleFunc(idle);
glutKeyboardFunc(kbd);
glutKeyboardUpFunc(kbdUp);
glutSpecialFunc(kbdSpec);
glutSpecialUpFunc(kbdSpecUp);
glutMotionFunc(mouseMotion);
glutMouseFunc(mouse);
glutPassiveMotionFunc(mouseMotion);
glutReshapeFunc(reshape);
Перераховані вище методи будуть викликатися при перемалюванні вікна, його затримці, натисканні, відпусканні клавіш на клавіатурі, переміщенні курсору миші, натиску клавіш на миші, зміні розмірів.
3.2 Архітектура гри та малювання основних об’єктів на полі.
Весь програмний код гри можна розподілити на дві частини.
Перша частина - «двигун гри» представляє собою основні методи, яки використовує OpenGL,тобто налаштування екрану, підключення сторонніх бібліотек, вмикання і використання текстур та освітлення. Також в ньому реалізована анімація, що працює на основі різниці часу, яка потрібна для подолання відстані на 1 клітинку і її візуальне відображення на екрані. Цю частину гри можна використовувати також для розробки інших ігор, який використовують OpenGL.
Друга частина – реалізація самої гри. Відповідно до поставленого завдання гра повинна мати меню, тому доцільно все, що буде відображатися у вікні розділити на декілька класів. Клас «Screen» є батьківський клас, а від нього наслідуються інші класи в залежності від моменту гри.
У класі LevelScreen реалізовано все, що стосується самого процесу гри: завантаження карти, малювання об’єктів на полі, відображення інформації про кількість життів, зібраних бонусів і часу, що залишився.
У класі GameOver присутні методи, які викликаються , коли додаткові життя закінчились. За функціональність цей класс схожий до TimeIsUp, оскільки гра завершується. TimeIsUp відрізняється тим, що використовує інші текстури для відображення тексту. [8]
Для коректування текстур і створення нових було використано графічний редактор Paint.NET.
