Электронные часы мультимедийной библиотеки SFML для разработки игр на C++
Вариантов отобразить электронные часы на языке программирования С++ очень множество, в данной статье рассмотрим электронные часы для 2D игр написанных используя мультимедийную библиотеку SFML. Для удобства дальнейшего внедрения данного кода в наши проекты создадим класс электронные часы, в котором реализуем возможность менять шрифт, размер и цвет электронных часов.
Для написания кода нам понадобится IDE Visual Studio, С++ проект с настроенной библиотекой SFML, шаблон кода SFML, иконки и шрифты.
Шаблон кода SFML C++
Если Вы с первой часть справились успешно, тогда можем добавить к нашему проекту новый класс назовём его SFMLWorldTime.
Объявление закрытых свойств класса SFMLWorldTime, файл SFMLWorldTime.h
newtime содержит необходимые поля для отображения времени: часы, минуты и секунды. long_time - переменная системного времени. err - сохраняет код ошибки при неверном подключении времени.
position_x, position_y - координаты электронных часов.
font_size - размер шрифта электронных часов.
time_font - хранит шрифт электронных часов. Переменная time_color хранит цвет электронных часов. clock_text - текстовый объект, который рисует элементы электронных часов в графическом окне.
Объявление закрытых методов класса SFMLWorldTime, файл SFMLWorldTime.h
Метод InitText устанавливает настройки объекта clock_text.
Метод what_time записывает текущее системное время в структуру newtime.
Определение закрытых методов класса SFMLWorldTime, файл SFMLWorldTime.cpp
Объявление конструктора класса SFMLWorldTime, файл SFMLWorldTime.h
Определение конструктора класса SFMLWorldTime, файл SFMLWorldTime.cpp
Объявление открытых методов класса SFMLWorldTime, файл SFMLWorldTime.h
Методы: setposition, setcolor, setTime_size устанавливаю свойства электронных часов, координаты, цвет и размер.
Методы: getsec, getmin, gethour, возвращаю целочисленное значение системного времени секунды, минуты, часы.
Метод drawTime рисует электронные часы в графическом окне. В параметрах передаётся объект графическое окно.
Определение открытых методов класса SFMLWorldTime, файл SFMLWorldTime.cpp
Определение метода drawTime
В методе drawTime проверяется условие для отображения элементов электронных часов, если элемент, например секунды меньше 10, тогда к нему добавляется ноль, который устанавливается перед секундами. Все элементы электронных часов склеиваются в одну строку с помощью метода append() и сохраняются в переменную tmpstr. Функция to_string() переводит целое значение в строковое.
После формирования строки с электронными часами, она выводится в графическое окно с помощью объекта window и метода draw().
Объект электронные часы SFMLWorldTime.
В функции main объявляем тип SFMLWorldTime (электронные часы) и с помощью цикла for выводим в графическое окно 10 электронных часов разных размеров.
Полный код файла SFMLWorldTime.h
Полный код файла SFMLWorldTime.cpp
Более подробную инструкцию вы можете получить посмотрев видео "Электронные часы SFML C++".