Вопрос Рендер текста по вертикали

Начинающий
Статус
Оффлайн
Регистрация
27 Июн 2022
Сообщения
28
Реакции[?]
1
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Хочу зарендерить текст по вертикали вроде получилось но как итог какая-то смесь
изображение_2024-01-11_011705512.png
Code:
String name = "SemPartin"
for (int i = 0; i < name.length(); i++) {
                        char sym = name.charAt(i); // Получаем символ по индексу
                        profileFont.draw(String.valueOf(sym), uiPosition.x  - 30 ,
                                uiPosition.y + 4 + sym* 2  + profileFont.getMiddleOfBox(20),
                                timeTheme.textColor.getRGB());
                    }
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Тебе надо получать размер каждого символа с твоим шрифтом.
Тобишь например
C++:
for ( int i = 0; i < name.length( ); i++ )
{
    char symbol = name.at( i );
    Vector size = Render::GetTextSize( symbol, myFont );
    Render::DrawText( Vector( 0, size.x * i ), symbol, myFont );
}
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
размер каждого символа
размер каждого символа как раз таки не нужно, достаточно размера первого символа с достаточным паддингом. если у тебя будет какой нибудь

n
e
g
r

с самым обычным шрифтом, то ты на выходе получишь размазню ебучую.
 
Начинающий
Статус
Оффлайн
Регистрация
27 Июн 2022
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
размер каждого символа как раз таки не нужно, достаточно размера первого символа с достаточным паддингом. если у тебя будет какой нибудь

n
e
g
r

с самым обычным шрифтом, то ты на выходе получишь размазню ебучую.
Можешь отправить как это будет выглядеть +- в коде
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
Можешь отправить как это будет выглядеть +- в коде
Java:
String name = "SemPartin"

// получаем приблизительный размер нулевого символа
// если ты чувствуешь себя как принцесса - можешь вычислить медиану размера всех символов,
// надо потестить
int textSize = profileFont.getCharSize(name.charAt(0));

for (int i = 0; i < name.length(); i++) {
  char sym = name.charAt(i);
  
  int currentSymbolOffset = i * textSize;
  
  int currentXPosition = uiPosition.x;
  int currentYPosition = uiPosition.y + currentSymbolOffset;

  profileFont.draw(
    String.valueOf(sym),
    currentXPosition,
    currentYPosition,
    timeTheme.textColor.getRGB()
  );
}
псевдокод будет выглядеть примерно так, но если ты знаешь размер шрифта изначально то высчитывать размер тебе нахуй не нужно
also полагаю что бага находица вот здесь, ты кастуешь значение байта на позицию (зачем то).
 
Начинающий
Статус
Оффлайн
Регистрация
27 Июн 2022
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,023
Реакции[?]
181
Поинты[?]
70K
Сверху Снизу