Пользователь пытается убить противников, сражаясь на парусных кораблях
Мышкой управляется парус, стрелочками на клавиатуре - поворот корабля
Сверху есть стрелка, указывающая текущее направление ветра
1 - выстрел из левой пушки, 2 - из правой
Абстрактный класс Interface - Bridge между графикой/сетевыми запросами и остальным кодом
Game - основной класс игры. Отсюда всё запускается
Coordinates, Sizes, Vector2D - технические геометрические классы, сильно упростившие код
Image - всё, что отвечает за отображение на экран - пересчёт координат, исходя из того, где главный игрок, зум и т.д.
Object - все игровые объекты. Отвечает за соспоставление с картинками, ведёт учёт всех объектов, чистит память, реализует полезные функции для пересчёта координат и т.д.
Island - простой Object, отвечающий за острова
Ship - Object, отвечающий за функции корабля. У корабля есть несколько своих объектов, таких как Паруса и Пушки
ShipObject - класс объектов, которым необходимо (координатно и не только) быть привязанными к своему кораблю. В нём реализованы соответсвующие методы
Sails - Паруса у корабля. Основная функция - сказать (при запросе) своему кораблю стлу ветра, действующую на парус в данной точке
Cannon - Пушка, стреляет Ядрами - CannonBall'ами. Контролирует время межжду выстрелами и скорость ядер.
CannonBall - Ядро, летит и увеличивается/уменьшается (для наблюдателя) в зависимости от высоты. Должно попадать в корабль и наносить урон
Map - Карта, отвечает за ветер и его рандомное обновление. Умеет сообщать ветер по точке
SDL_Classes - Технические классы, реализующие SDL_Interface
Используется SDL2
1. Установка SDL2 - https://wiki.libsdl.org/Installation
Для Linux:
git clone https://github.com/libsdl-org/SDL
cd SDL
mkdir build
cd build
../configure
make
sudo make install
- стандартная, через CMake
Linux:
git clone https://github.com/dvirnyak/Game
cd Game
mkdir build
cd build
cmake ..
make
./MyCoolGame

