Использование средств библиотеки SFML для написания игровых проектов
Авторы: Коптенок Елизавета Викторовна, Храмченков Евгений Викторович, Храмченко Владислав Дмитриевич
Рубрика: Информатика и кибернетика
Опубликовано в Техника. Технологии. Инженерия №2 (8) апрель 2018 г.
Дата публикации: 04.04.2018
Статья просмотрена: 1562 раза
Библиографическое описание:
Коптенок, Е. В. Использование средств библиотеки SFML для написания игровых проектов / Е. В. Коптенок, Е. В. Храмченков, В. Д. Храмченко. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2018. — № 2 (8). — С. 18-22. — URL: https://moluch.ru/th/8/archive/85/3268/ (дата обращения: 16.11.2024).
В качестве тем курсовых работ по программированию студентам часто предлагается разработка компьютерных игр. Такая тематическая направленность самостоятельной работы повышает мотивацию обучаемых и их интерес к предмету, позволяет развивать мышление и усовершенствовать навык работы с алгоритмическими конструкциями.
Существует множество графических библиотек для написания игр, например, SFML, SDL, OpenGL, DirectX и так далее [1]. В написании курсовых работ готовые конструкторы не используются, так как не позволяют в полной мере продемонстрировать знания программирования, потому что на их основе можно создать игру, написав минимальное количество строчек кода.
Библиотека SFML позволяет разработать игровой проект, организовать вывод графических изображений и звуков, при этом уделить значительное внимание алгоритмам игрового процесса. Значимым преимуществом графической библиотеки является её кроссплатформенность, которая позволяет написать проект в одной среде и использовать в других, перекомпилировав программу, не изменяя код.
В состав SFML входит пять модулей [1]: system, window, graphics, audio и network. Основной функцией SFML является функция отрисовки окна с заданными параметрами, такими как высота и ширина.
Средства библиотеки позволяют работать с примитивами, такими как линия, прямоугольник, круг и многоугольник, и со спрайтами, в которые можно загружать текстуры [1]. Для этого используются функции-методы loadFromFile (string) класса Image, loadFromImage (file) класса Texture, setTexture (image) класса Sprite и draw (объект) класса Window. С графическими объектами можно производить манипуляции, например, двигать их, менять размеры, угол, под которым пользователь будет видеть кадр.
Функция-метод create (VideoMode(windowWidth, windowHeight), string), относящаяся к классу Window,является основополагающей, так как используется при написании любого проекта, основанного на графической библиотеке SFML, так как открывает окно, в котором происходят все графические манипуляции.
События считываются с помощью метода pollEvent (event) класса Event.
За работу с аудиофайлами отвечает заголовочный файл SFML/Audio.hpp, который позволяет работать с длинными музыкальными и короткими звуковыми файлами, принадлежащими классам Music и Sound соответственно, и воспроизводящихся с помощью функции метода play(), определённой для каждого класса по своему.
Общая структура игровой программы представлена на рис.1. На ней показана логика вызова игровых функций из пользовательского меню [2].
Далее рассмотрена схема игрового цикла (рис.2.) [2]. При входе в функцию игры необходимо проинициализировать начальные значения уровня (загрузить из файлов текстуры и звуки уровня, установить камеру, задать параметры NPC и так далее), затем нужно отрисовать стартовое поле. После этого происходит вход в игровой цикл, условием выхода из которого является закрытие окна игры или переход на следующий уровень. Далее рассчитываются параметры, значения которых не зависят от пользовательских действий (координаты персонажей, их количество, параметры движения игровых объектов). Потом производится расчет параметров, на которые влияют действия пользователя. К таким параметрам относятся положение персонажа игрока, нанесенный урон, активация флагов NPC и другие. Затем строится и отрисовывается кадр, после чего происходит возврат в начало цикла.
Рис. 1. Общая структура игровой программы
Рис. 2. Игровой цикл программы
С использованием библиотеки SFML на основе описанной логики игрового проекта написана игра «Пятнашки». В игровом цикле регистрируется ход пользователя, после чего при необходимости изменяется состояние игрового поля и осуществляется его перерасчет (совершается ход). Демонстрация работы программы представлена на рис.3., рис.4 и рис.5.
Рис. 3. Меню игры
Рис. 4. Игровой процесс
Рис. 4. Взаимодействие героя с игровым пространством
Использование средств библиотеки SFML при написании вышеописанной программы позволили уделить большее внимание игровым алгоритмам, поскольку не пришлось отдельно создавать функции для вывода графики и звука и регистрации событий.
Из большого количества доступных графических движков и библиотек для написания игры выбран SFMLпоскольку он предоставляет простой интерфейс для различных компонентов компьютера.
Литература:
- Официальный сайт SFML. URL: https://www.sfml-dev.org/learn.php
- Коптенок Е. В., Кустова Д. В., Полшкова И. В. Применение графической библиотеки SDL2.0 для программирования компьютерных игр на языке СИ // Молодой ученый. — 2017. — № 46. — С. 30–33. — URL https://moluch.ru/archive/180/46408/ (дата обращения: 31.03.2018).