SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Работа с текстом
В этой теме 4 ответа, 2 участника, последнее обновление Icenji 8 года/лет, 4 мес. назад.
-
АвторСообщения
-
Работаю над одним проектом, как будет готов залью на всеобщее обозрение. Я и не думал что такая мелочь больше всего меня будет напрягать – а именно текст. Я делаю карточную игру.
1) Нужно на каждую карту в определённое место наносить строку, при движении карты двигать и строку вместе с ней
2) Найти нормальный шрифт.Дело в том, что карточная игра происходит в окне 320х240. Карта вообще размером 42х51. А текст – строка из 4 символом должна умещаться в 30-35 пикселей по ширине. Методом научного тыка установлено, что нужно использовать кегль 8. Но какой бы шрифт я не использовал – они все смазываются, выглядят ущербно. Есть ли шрифты (пусть даже пиксельные), которые выглядят нормально при таких размерах, и желательно поддерживают кириллицу?
А вот что делать со строками? Мне нужно в конструкторе класса карты писать что-то вроде:C++1234sf::Font font;font.loadFromFile("shrift.ttf");sf::Text text("", font, 8);text.setColor(sf::Color::Yellow);Т.е. насколько я понимаю – для каждой карты подключать шрифт, а это быдлокод. Конечно если так и сделать, если работать будет то будет занято на 1-2МБ оперативки больше, но по-хорошему один раз подключить шрифт и как-то для каждого класса отдельный экземпляр строки.
ttf формат в играх смотрится ущербно, если нужно качество – используй текстурный шрифт, но для его вывода тебе придется написать собственную систему его вывода на экран.
Пересмотрев сотни шрифтов, скачав десятки, оставив единицы таки нашёл один более-менее терпимый. Теперь ещё появился вопрос – можно ли сделать текст оранжевым? Orange цвета в text.setColor(sf::Color) нет. Есть только близкие жёлтый и красный
Цвет имеет набор от 0-255 RGBA.
Red Green Blue Aplha(прозрачность)
text.setFillColor(sf::Color(255,255,0,255));Смешивай краски и получай любой цвет.
То что нужно
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.