Отображение русского текста в прямоугольнике с помощью SFML
Дата публикации: 15.04.2025

Отображение русского текста в прямоугольнике с помощью SFML

40a141ee

Содержимое статьи:

Определение размера прямоугольника

Для определения размера прямоугольника необходимо подсчитать количество знаков переноса строки в тексте и умножить его на желаемый размер шрифта и коэффициент отступа.

for (int i = 0; i < max_texts_on_screen; i++) {
int newline_count = std::count(my_text[i].begin(), my_text[i].end(), '\n');
text_lines[i] = newline_count + 1; // количество строк текста
}
for (int i = 0; i < max_texts_on_screen; i++) {
text_background_height[i] = text_size * text_lines[i] * 1.5;
}

Отрисовка прямоугольника и текста

Используя рассчитанные параметры, создаем и отображаем прямоугольники и текст на них.

sf::RectangleShape rectangles[max_texts_on_screen];
sf::Text text[max_texts_on_screen];
for (int i = 0; i < max_texts_on_screen; i++) {
rectangles[i].setSize(sf::Vector2f(window_width, text_background_height[i]));
rectangles[i].setPosition(0, 0 + ((text_background_height[0] + 1) * i));
rectangles[i].setFillColor(sf::Color::White);
text[i].setFont(font);
text[i].setString(my_text[i]);
text[i].setCharacterSize(text_size);
text[i].setPosition(200, 0 + (text_background_height[0] + 1) * i);
text[i].setFillColor(sf::Color::Black);
}
while (window.isOpen()) {
// ...
window.clear();
for (int i = 0; i < max_texts_on_screen; i++) {
window.draw(rectangles[i]);
window.draw(text[i]);
}
window.display();
}

Изменение текста

Для изменения текста при нажатии левой кнопки мыши необходимо проверить, попал ли курсор по прямоугольнику. Если да, то изменяем текст первого прямоугольника.

if (change_text) {
text[0].setString(L"супер");
}


Чат Рулетка: Видеочат для общения с людьми из разных стран
DameWare Development: Инновационные решения для бизнеса
Хвойные пиломатериалы: традиционные технологии, высочайшее качество
Интернет-шопинг кофе и чая: встречайте свежие идеи
IP Видеонаблюдение: Современные Подходы к Безопасности
Жизнь в Ревде: обратная связь с ЖСК УЮТ и важные моменты
Компании автомобильной промышленности России: управление проектами
Купить шины для JCB: Погрузчики, экскаваторы и грузовые шины
Логистика Китая: Оптимизация Процессов
Магазин горящих путевок
Обзор онлайн-ресурсов для медиа и развлечений
Онлайн пианино с возможностью записи и воспроизведения
Онлайн радио: Музыка онлайн
Оптимизация для мобильных устройств: Зачем это важно?
Опыт создания сайта своими руками и решение технических проблем
Почему Богородицу называют Хлебом Жизни?
Почему боль от прошлого не отпускает?
Почему болезнь прогрессирует при лечении?
Почему болит горло, если ничего холодного не пил и не выходил на улицу?
Почему болит спина после молитв и просмотра видео со священником?
Почему люди живут, не задумываясь о потенциальном конце жизни?
Почему люди любят рифмовать?
Почему люди любят зиму?
Почему люди мчатся на дачу в лютый мороз?
Почему некоторые пары медлят с официальным оформлением отношений, а другие спешат пожениться и родить детей
Почему некоторые предметы не указаны в зачетной книжке?
Почему некоторые приготовленные блюда выглядят неаппетитно?
Почему штаны в Омске в 5 раз дороже, чем в Лагосе, а метро в Омске прикольное 1 станция, в Лагосе 30
Почему шторки кондиционера не полностью закрываются после выключения?
Почему Швондер несимпатичен, а Синцов вызывает сопереживание?
Почему вылетает Red Dead Online?
Подключение ноутбука к телевизору: устранение проблемы с миганием и пропаданием изображения при подключении по HDMI
Подключение одного принтера к двум компьютерам
Покупка Moza R5 за 50 000 рублей как первого руля: стоит ли игра свеч?
Покупка натуральных продуктов в интернет-магазине
Покупка недвижимости, перешедшей по дарению
Помогите найти игру детства: забытый стратегический хит с танками
Помогите определить заболевание!
Помогите! Ошибка 0x80080005 - 0x90018 при использовании Media Creation Tool
Помогите! Ошибка на PS3 Super Slim
Помогите, от домашних мышей воняет!
Помогите с Roblox Studio
Помогите с родной литературой!!! К.М. Станюкович Рождественская ночь
Помощь с физикой: Определение массы расплавленного свинца
Помощь с физикой: Расчёт температуры разрежённого газа
Помощь с физикой: Распознавание видов движения
Последствия эмоциональных качелей в отношениях
Последствия эпохи раздробленности Руси для дальнейшего развития русских земель
Последствия езды несовершеннолетнего без прав в селе
Последствия исчезновения бездомных
Последствия использования чит-таблиц в Little Company и способы их устранения
Познание Бога в Святой Троице: Отца, Сына и Духа Святого
Познавательные вопросы и ответы
Позорная вечеринка Ивлеевой: лишить ли артистов почетных званий?
Позорное поражение в драке
Прицепы и комплектующие - продажа и обслуживание в России
Причины медленного Wi-Fi на телевизорах Haier Smart TV
Причины медленной скорости загрузки при высокой скорости по Speedtest
Проблема: низкая загрузка GPU в Rust
Проблема: Низкодетализированные постеры и татуировки в Cyberpunk 2077
Проблема низкой скорости upload на серверах МТС
Проблема нулевых просмотров на шестом видео в TikTok
Проблема обновления Samsung Galaxy S22
Проблема с работой одного цилиндра на Иж Юпитер 5
Проблема с работой ВКонтакте в браузере Chrome
Проблема с ранним включением сирены в Lethal Company
Проблема с расхождением меток ГРМ после проворачивания коленвала на Renault K7M 8V
Проблемы с картой Барбоскины в Roblox: что делать?
Проблемы с картой памяти SD
Проблемы с кишечником: запоры у мужчин
Проблемы с заданием В горах в Genshin Impact
Проблемы с загрузкой и установкой Forge
Проблемы с загрузкой игры Rust: Не отвечает
Прокат игр PlayStation: честная аренда и прокат игр
Прокататься по Босфору или посетить музей Сулеймание: выбор идеального подарка
Прокатит ли обман окулиста?
Пуля не выталкивается с казенника (патронника) пневматической винтовки
Пункция лимфоузла и лимфаэдектомия
Пунктуационные ошибки в предложениях
Распределение прилагательных по наличию одной или двух букв Н
Распределение расходов на праздничный стол
Распределение роста девушек
Распределение скорости в локальной сети
Распределение слов по орфограммам
Разыскивается фильм с сюжетом о двух сестрах и призраке
Разыскивается кровавая 3D-игра в стиле Хотлайн Майами
Решение задачи по экономике
Решение задачи по электрохимии
Решение задачи по электротехнике — переменный ток
Русский язык: понятие и употребление
Русский язык: причастия, деепричастия и отглагольные прилагательные
РУССКИЙ ЯЗЫК: ПРИЧАСТНЫЕ ОБОРОТЫ
Сервиз 6 чайных пар, советский фарфор СССР
Серый экран и работающая мышь при входе в учетную запись на Windows 11
Серый экран смерти на новом компьютере
СИВМА: от исторических корней до современных методов работы
Точное время: как организовать свое пространство
Вэб Инфо Продукт: Создание инфопродуктов с нуля
Создание сайтовПродвижение сайтовПоддержка сайтовРедизайн сайтов
Создание баннеровСоздание презентацийСоздание фирменного стиля
3D-моделирование3D-визуализация
Оформить предварительный заказ на любую из услуг