Молодежь и наука - третье тысячелетие: Материалы студенческой научно-практической конференции с международным участием
263 реместиться игроку для перехода на следующий уровень с выходом из текуще- го цикла и т.д. Также в этом блоке проверяется уровень здоровья игрока: если он равен 0, уровень запускается заново; 2. Обработка ввода. В данном блоке осуществляется запуск функции для обработки ввода пользователя. Это могут быть клавиши перемещения, обра- ботка стрельбы, открытие и перемещение по инвентарю, выход в меню, паузы и впоследствии выход в главное меню с завершением цикла; 3. Перемещение сущностей. Движение игрока на соответствующие вводу координаты, а также перемещение монстров в сторону игрока, если тот нахо- дится в поле видимости; 4. Отрисовка кадра. После всех изменений в игровом мире за данную итерацию происходит сборка кадра. В первую очередь, выводится карта, за- тем поверх обрисовываются игрок и монстры, далее – элементы интерфейса, уведомления. Объекты игры Каждый уровень описывается в своем классе, в котором хранится соответ- ствующая уровню карта, монстры, а также методы, описывающие вышепере- численные пункты. Управление уровнями осуществляется через менеджера уровней – специальный класс, который хранит в себе информацию об игроке, экземпляры уровней и позволяет перемещаться между ними, а также открывать отдельные уровни. Игровые сущности описываются в своих классах и содержат координаты положения на карте, методы по отрисовке на экран, которые вызываются в иг- ровом цикле. Персонаж обозначается «0» синего цвета и в своем классе хранит инвентарь и методы по работе с ним – удаление, добавление предметов, очист- ка. В игре есть несколько видов монстров, отличающихся поведением, силой удара, цветом и символом. Все монстры описываются через общий для всех монстров класс, в котором есть метод для поиска игрока на карте и построения маршрута до него. Все монстры помещаются в специальную коллекцию, с по- мощью которой можно создавать дополнительных монстров, останавливать движение всех монстров, узнавать о численности живых и убитых монстров. В игровом цикле идет взаимодействие с коллекцией монстров, а не с каждым отдельным монстром. Исключением является босс игры, взаимодействие с ко- торым происходит напрямую из-за его специфичного поведения: кроме обыч- ных функций поиска игрока на карте, он обладает возможностью стрельбы, схожей со стрельбой главного героя. Карты уровней хранятся в текстовых файлах и погружаются при переходе на уровень в обыкновенный двумерный массив. Пустое пространство на карте записывается пробелами, деревья буквой «T», стенки – «_», «|», вода - «~». Для каждого из этих символов в коде заданы цвета фона и самого символа. При каждой отрисовке кадра карта отображается посимвольно, с применением ин- дивидуальных цветов для каждого символа с помощью функционала pdcurses. Дорожки обозначаются в файле «1» для того, чтобы при отрисовке по данным координатам отрисовывался пробел определенного цвета, в данном примере бежевым (см. рис. 1, 2).
Made with FlippingBook
RkJQdWJsaXNoZXIy ODQ5NTQ=