Skip to content

Commit

Permalink
Merge branch 'master' of github.com:gosha-krovsh/freedom into content
Browse files Browse the repository at this point in the history
� Conflicts:
�	Controller/abstract_controller.h
�	Controller/controller.cpp
�	Controller/controller.h
�	Controller/quest_controller.cpp
�	GameObject/door.h
�	GameObject/item.h
�	GameObject/object.cpp
�	GameObject/sound.cpp
�	GameObject/storage.cpp
�	Model/constants.h
�	Model/model.cpp
�	Resources/Jsons/quests.json
�	View/view.cpp
  • Loading branch information
ArseniyTy committed May 26, 2021
2 parents 49fe5bd + 599b6c1 commit da5c9b2
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 1 deletion.
58 changes: 57 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,57 @@
# Freedom
# Freedom

![](./Resources/Images/main_menu_background.png)

Freedom - игра, разработанная нами (см. Авторы) на языке С++ с использованием
фреймворка QT. Основной целью проекта является
освоение навыков командной разработки и разработки проектов с использованием C++/QT.

![](./Resources/Images/readme_screen1.png)
![](./Resources/Images/readme_screen2.png)
![](./Resources/Images/readme_screen3.png)

## Содержание

* [Сюжет](#Сюжет)
* [Технологии](#Технологии)
* [Установка](#Установка)
* [Авторы](#Авторы)

## Сюжет
Итак, после изнурительной драки за яблоко с охранником тюрьмы вы просыпаетесь в своей камере
и понимаете, что жить так больше нет сил и бежать нужно любой ценой. К счастью, в этой
тюрьме у вас будет такая возможность. Всего-то нужно сломать эти толстые стены или убить
всех охранников. Разговаривайте со своими сокамерниками и надзирателями,
выполняйте квесты, исследуйте локации и станьте первым среди равных!

## Технологии
* Созданная система квестов и диалогов позволяет создавать очень гибкие сюжетные линии.
* Графический интерфейс и отрисовка игровых объектов реализована при помощи стандартных наборов для рисования в QT в комбинации с OpenGL
* Вся анимация и внешний вид игровых объектов и героев разрабатывался при
помощи MagicaVoxel.
* Игра использует изометрическую графику,
для которой были реализованы специальные методы рисования объектов
* Архитектура приложения основана на паттерне MVC (Model-View-Controller).
* Для менеджера ресурсов использовали ресурсный файл `resources.qrc` а для хранения
данных файлы формата `.json` (см. папку `Jsons`).
* За счёт использования `json-`ов значительно увеличилась скорость разработки и наполнения
игры различным контентом (квестами, диалогами и т.д.).
* Создана гибкая система анимаций игровых объектов, позволяющая анимировать
объекты по совершенно любым состояниям.
* Наличие ботов и различных видов логических взаимодействий с ними: драка,
наблюдение и преследование героя, построение пути, диалоги,
лутание вещей после их смерти.

## Установка
Для установки игры вам нужно скачать архив, расположенный в папке `Releases`, распаковать
его и запустить исполняемый файл (`Freedom.exe`). На данный момент наша игра доступна для
ОС Windows, Linux и MacOS.

## Авторы
**Арсений Тылецкий**

**Егор Желткевич**

**Георгий Кровш**

**Максим Лицкевич**
Binary file added Resources/Images/readme_screen1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/readme_screen2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/readme_screen3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions Resources/resources.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@
<file alias="door_315.png">Images/door_315.png</file>

<file alias="main_menu_background.png">Images/main_menu_background.png</file>
<file alias="readme_screen1.png">Images/readme_screen1.png</file>
<file alias="readme_screen2.png">Images/readme_screen2.png</file>
<file alias="readme_screen3.png">Images/readme_screen3.png</file>

<file alias="schedule.json">Jsons/schedule.json</file>
<file alias="game_map.json">Jsons/game_map.json</file>
Expand Down
1 change: 1 addition & 0 deletions View/main_menu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ void MainMenu::SetStyles() {
void MainMenu::ConnectButtons() {
connect(play_button_, &QPushButton::pressed, this, [this]() {
controller_->CloseMainMenu();
controller_->PlayTrackOnce(Sound::kButtonClick);
});
connect(exit_button_, &QPushButton::pressed,
QApplication::instance(), &QCoreApplication::quit);
Expand Down
5 changes: 5 additions & 0 deletions View/view.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ class View : public QMainWindow {
void SetTime(const Time& time);
void SetLocation(const QString& location_str);

void SetHealth(int health);
void SetAttack(int attack);
void SetTime(const Time& time);
void SetLocation(const QString& location_str);

private:
QTimer* timer_{new QTimer(this)};
AbstractController* controller_;
Expand Down

0 comments on commit da5c9b2

Please sign in to comment.