- •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 Керівництво користувача
- •Висновок
- •Список джерел інформації
- •Додаток а
3.3 Основні функції гри
Оскільки гра реалізована з використанням об’єкто-орієнтованого підходу, то використовуються функції, що можуть бути реалізовані для об’єктів різних типів. Короткий опис функцій можна переглянути в таблиці 3.1
Таблиця3.1–призначенняфункцій
|
|
Функція |
Призначення |
std::auto_ptr<GameBase> game(new Game()); |
Запуск гри |
void GameBase::run() |
Запуск ігрового процесу |
void Animation::update(int timeSpan) |
Оновлення данних для анімації |
|
|
|
|
void display() |
Виклик бібліотеки glut при пере малюванні вікна |
void mouse(int button, int state, int x, int y) |
Виклик бібліотеки glut при активації кнопок миші |
void mouseMotion(int x, int y) |
Виклик бібліотеки glut при русі мишкою |
void reshape(int width, int height) |
Виклик бібліотеки glut при зміні розміру вікна |
void Sprite::draw |
Малюємо спрайти для фону в меню |
void GameOver::draw(int timeSpan, int width, int height)
|
Малюємо вікно |
Texture::Texture()
|
Робота зі текстурами |
void Texture::enable()
|
Активуємо текстуру |
|
|
Texture::load(const char* filename)
|
Завантаження текстур |
Level::Level(const char* filename)
|
Завантаження рівня з текстового файлу |
void GameOver::draw(int timeSpan, int width, int height)
|
Малювання сцени при програші |
LevelScreen::LevelScreen(Resources *resources, int levelId, int livesCount) |
Малювання вікна з грою |
LevelScreen::tryMoveToCell(int xOffset, int yOffset)
|
Перевірка можливості рухатись в клітинку |
Point Level::findHumanPosition() |
Пошук позиції персонажу на карті |
std::vector<Point> Level::findEmenies() |
Пошук ворогів на карті |
int Level::getCrystalsCount()
|
Лічильник кристалів |
Закінчення таблиці 3.1 |
|
Resources::getTexture(std::string path, std::string name) |
Завантажуємо текстуру [4] |
Resources::getAnimation(std::string path, std::string name, int framesCount) |
Завантажуємо анімацію, яка вказана для об’єкта |
Direction Enemy::findDirectionToHuman(Level* level) |
Пошук найкоротшої дистанції до персонажу |
|
|
void LevelScreen::draw(int timeSpan, int width, int height) |
Малюємо рівень з текстурами, кристалами, ворогами |
void LevelScreen::drawPanel(int width, int height) |
Малюємо панель інформації |
void LevelScreen::save(const char* fileName) |
Збереження координат об’єктів в текстовий файл |
LevelScreen* LevelScreen::load(Resources *resources, const char* fileName) |
Завантаження гри з файлу, що збережений |
void MenuScreen::draw(int timeSpan, int width, int height) |
Малювання головного меню |
void PauseScreen::draw(int timeSpan, int width, int height) |
Малювання меню під час паузи |
