Постановка задачи. Выбор инструментов. Описание программы

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

Целью данного курсового проекта является закрепление пройденного материала по дисциплине «Языки и методы программирования», которое осуществляется посредством создания своей версии программного продукта «Ping-Pong», созданного для развлечения и совершенствования реакции игроков.

Игровое поле представлено квадратным окном приложения, размерами 410х330. Игра рассчитана на двух игроков, один из которых управляет зелёной платформой, другой управляет синей платформой. Задача каждого игрока — не пропустить шар в свою сторону, а отбить его платформой. Игра не имеет конца, игроки сами решают, когда закончить. Счётчик показывает разницу между пропущенными шарами. Главное цель игры — заработать больше очков разницы.

Выбор инструментов.

В качестве инструмента для реализации поставленной задачи было решено использовать среду разработки Qt Creator. Данная среда разработки значительно упрощает создание приложения с использованием фреймворка Qt и имеет удобный интерфейс. Причиной выбора также послужили доступность и мощь данного продукта.

Описание программы.

Основой программы являются три класса: class Dialog, class MainWindow и class Gameplay. class Dialog описывает работу меню и текста, class MainWindow создаёт объекты игры (платформы, шар, игровой поле), class Gameplay описывает взаимодействие объектов, созданных в class MainWindow.

Шар перемещается по полю при помощи функции moveBy, движение платформ определяется аналогично такой же функцией. Только у платформ значение координаты у всегда равно 0. Причём всегда выполняются условия для объектов, чтобы они не вылетели за пределы игрового поля — с помощью функций boundingRect, отвечающая за границы объектов, и sceneRect, отвечающая за границы игрового поля.

Управление платформами осуществляется функцией eventFilter.

За скорость движения платформ и шара отвечает таймер Timer. А это значит, что скорость всех объектов одинаковая.

За обработку столкновений отвечает функция collidesWithItem. За добавление объектов на сцене (игровое поле) отвечает addItem, а за их позицию на игровом поле — setPos.

Класс Gameplay наследуется от класса QGraphicsItem и использует его виртуальные функции: collidesWithItem для реализации столкновений, и boundingRect для определения внешней границы объекта. Так же в классе объявлена функция eventFilter — функция движения объектов.

Класс MainWindow использует функции класса QGraphicsScene такие как addItem, sceneRect. Используется функция класса QPen: setBrush — заливает объект цветом.

Платформы и шар создаются с помощью стандартных графических элементов наиболее общих фигур QGraphicsRectItem и QGraphicsEllipseItem соответственно.

Функция int main содержит в себе переменные классов QApplication и Dialog. Для отображения всех объектов класса Dialog мы используем функцию show, унаследованную от QWidget. Переменная класса QApplication используется для создания окна приложения.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: