Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Мельников УК-02.docx
Скачиваний:
0
Добавлен:
23.12.2018
Размер:
715.01 Кб
Скачать

3. Постановка задачі

Усі елементи гри, тобто машинка, стінка, трава, тощо, складаються з блоків, тобто квадратів різного коліру.

Рис.3 Блоки різного коліру

Рис. 4. Машинка з блоків

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

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

4. Програмна реалізація гри sq CaRs.

Для реалізації проекту обрано мову С++. У проекті використана відкрита графічна бібліотека OpenGL. Проект складається з 2 файлів: .h та .cpp.

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

Рис.5. Наглядний вигляд меню гри.

Далі користувач має зробити вибір. Бульове значення змінної selection

відповідає за зроблений вибір:

  • true - Вибрано пункт NEW GAME

  • false - Вибрано пункт EXIT

При натисканні клавіші Enter буде зроблено вибір. Якщо було вибрано NEW GAME, то почнеться гра.

Рис. 6. Начало гри

На рисунку 6 зображено, як виглядає початок гри. Розглянемо окремі елементи:

- машинка гравця, якою він керує.

Рис. 7.

- машинка, якою ніхто не керує, вона лише рухається вперед, але з

Рис. 8. нею можна зіткнутися.

- трава. Її неможливо перетнути.

Рис. 9.

- стіна. З нею можна зіткнутися.

Рис. 10.

- тут відображається кількість набраних очок.

Рис. 11.

Керування здійснюється за допомогою клавіш на клавіатурі:

W, A, S, D - переміщують машинку в допустимих межах.

F - прискорення.

E - політ.

R - рестарт гри у разі поразки.

Постійний рух досягається за допомогою функції - таймеру, яка постійно визивається через кожні 20 мс. У функції timer() виконується зміна координат об'єктів з урахуванням нажатих клавіш та послідуючий виклик функції display(), яка замальовує об'єкти, які змінюють своє положення, а потім знову малює їх з новими координатами.

При натисканні клавіші прискорення(F) функція-таймер визивається у два рази частіше, тобто кожні 10 мс. Так досягається прискорення руху усіх елементів гри.

Якщо гравець натисне E(політ), то машинка збільшиться. Це створює вигляд ніби машинка летить. Поки машина летить вона не може зіткнутися з перешкодами, але очки у польоті зменшуються, а не збільшуються.

Рис. 12. Політ машинки.

Якщо машинка врізається у якусь перешкоду, то гра закінчується, та зображується екран поразки.

Рис. 13. Поразка.

Тепер гравець може натиснути R, щоб обнулити рахунок, положення усіх об'єктів та почати гру спочатку.

Висновок

В результаті виконання роботи досягнуто її мету – засвоєно отримані протягом семестру знання та вдосконалено практичні навички. Змодельовано та апробовано гру "SQ CaRs" за допомогою мови С++ з використанням пакету Microsoft Visual Studio 2010 та графічної бібліотеки OpenGL в середовищі Windows.

Реалізовані такі функції:

- аркадна гра;

- реалізація класів;

- нелінійне наслідування;

Виконання курсової роботи дозволило розкрити можливості об’єктно-орієнтовного програмування за допомогою мови С++. В процесі написання роботи я засвоїв, що С++ - високорівневна мова програмування з підтримкою декількох парадигм програмування.

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