Делаю программу на SFML. Я хотел сделать, чтобы когда текст выходил за границы экрана, текст переносился на новую строку. Вот код:
public static Text ConsoleOutput { get; private set; }
public static void Init()
{
ConsoleOutput = new Text();
ConsoleOutput.CharacterSize = 24;
ConsoleOutput.FillColor = Color.White;
ConsoleOutput.Position = new Vector2f(10,10);
ConsoleOutput.Font = new Font(Environment.CurrentDirectory + "\\C\\System\\terminal.ttf");
}
public static void Write(string text)
{
float width = 0;
foreach(var item in text)
{
if(width >= ResultWindow.Window.Size.X)
{
WriteLine("");
width = 0;
}
else
{
width += ConsoleOutput.CharacterSize;
}
ConsoleOutput.DisplayedString += item;
}
}
public static void WriteLine(string text)
{
float width = 0;
foreach (var item in text)
{
if (width > ResultWindow.Window.Size.X - 32)
{
ConsoleOutput.DisplayedString += "\n";
width = 0;
}
else { width += Console.Output.ConsoleOutput.CharacterSize; }
ConsoleOutput.DisplayedString += item;
}
ConsoleOutput.DisplayedString += "\n";
}
Но работает так:
Теперь подробнее: На запуске до появления окна, оно запускает метод Init(), который настраивает размер, цвет, шрифт текста. Размер шрифта - 24. И также до появления окна оно запускает метод Write("текст"), которое добавляет текст в строку но проходится по каждому символу текста, и также..У меня есть переменная width, которая прибавляется на размер шрифта (24) каждый символ, и если на символе ширина текста становится больше ширины окна - 32, строка переносится и width становится 0.
Размер окна: 840x420
Метод Vector2f Text.FindCharacterPos(uint index) получает графическую позицию символа относительно текста. Что касается размеров шрифта, он указывается не в пикселях, и самостоятельно вычислять его ширину в пикселях ввиду сложности темы крайне не рекомендуется.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В документации microsoft написано, что если передавать ссылочный тип по значению, то фактически в метод передаётся копия на ссылкуТогда почему...
Как работать с sfml на с# в линуксЕсть идея с моно, но есть желание разрабатывать сразу на ubuntu и запускать
Помогите разобраться с правильным использованием многопоточности в виндовс-службе, написанной наnet core
На выходе в отладчике dTest3 036000000000001364