Skip to content

Двухмерный рогалик на базе библиотеки OpenGL.

Notifications You must be signed in to change notification settings

Sidl419/Imp-Rush

Repository files navigation

2D-игра на базе OpenGL

Игровая локация

Карта лабиринта содержится в файле Maze.txt и состоит из 20 комнат 5 разных типов:

ACB....
..DCB..
..B....
CADCABE
B..D...
EACB...
.......

,где A, B, C, D - обычные комнаты, E - выход из лабиринта.

Комнаты могут состоять из следующих типов тайлов:

пустое пространство:                    ‘ ‘ (пробел)
стена:                                  ‘#’
пол:                                    ‘.’
игрок:                                  ‘@’
выход из комнаты:                       ‘x’
выход из всего лабиринта:               ‘Q’
ключи:                                  ‘K’

Игровые механики

Была реализована следующая механика: изначально все выходы из комнаты закрыты (их от 1 до 4), чтобы их открыть требуется подобрать ключ (монетка). Начальное положение игрока в комнате не зависит от двери, через которую он вошёл, однако он может вернуться в предыдущую комнату, пойдя в противоположном направлении.

Все игровые элементы имеют свои отдельные спрайты.

Управление реализовано через клавиши W, A, S, D (можно только перемещается, ключи и прочие игровые элементы реагируют на приближение игрока). Выйти можно с помощью клавиши Esc.

При попадании в пропасть персонаж умирает (выводится сообщение и игра завершается).

При выходе из лабиринта игра считается пройденной (выводится сообщение и игра завершается).

Графическая часть

  • анимация статических объектов - ключ (монетка) вращается;

  • плавная спрайтовая анимация динамических объектов - походка игрока, его анимация бездействия, открытие дверей (анимация дверей четырёхкадровая, это может быть незаметно из-за освещения уровня);

  • графический эффект перехода между комнатами - fade out / fade in;

  • эффекты пост-обработки всего изображения - изображение намеренно затемняется для создания атмосферы;

  • источники света - персонаж “освещает” (=изменяет цвет) соседних тайлов в некотором радиусе;

  • анимация источников света - свет тускнеет с расстоянием.

Видео игрового процесса

Доступно по ссылке https://youtu.be/1tFF3XQwTPI.

На видео заметна просадка кадров, это вызвано использованием OBS Studio (программа для захвата экрана) и работой в виртуальной машине. В стандартных условиях анимации выглядят весьма плавно.

Сборка программы (из папки проекта)

  • cmake ./
  • make
  • ./bin/main

About

Двухмерный рогалик на базе библиотеки OpenGL.

Topics

Resources

Stars

Watchers

Forks