Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Health text

  • Автор темы Автор темы yovimi
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
993
Реакции
275
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я далбоёб не могу текст переместить на середину ( если и перемещаю то он начинает жить своей жизнью)
Counter-strike  Global Offensive Screenshot 2021.01.05 - 11.48.01.84.png

надо что бы текс был по середине пжпжпж
C++:
Expand Collapse Copy
void c_visuals::visuals_player::DrawHP() {
    float box_h = (float)fabs(bbox.left - bbox.bottom);

    if (g_Options.box_outline)
        box_h += 2;

    int height = ((health) / 100) - 2;
    int x = bbox.left + 1;
    int y = bbox.bottom - 0;
    int w = 4;
    int h = box_h - 2;
    std::string text = std::to_string(health);

    auto bClr = Color::Black;
    auto hClr = g_Options.hp_clr;

    ImplementAlpha(bClr);
    ImplementAlpha(hClr);

    if (g_Options.box_outline)
        y -= 1;

    Render::Get().RenderText(text , x - 20, y, 9.f, g_Options.hp_clr);
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
помогите(((
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
int x = bbox.left + 1;
начальная точка слева
получи разницу между bbox.left & bbox.right
добавь эту разницу/2 к bbox.left
у тебя в рендере должно быть
GetTextSize | CalcTextSize
получи размер текста, и отними от (bbox.left + (bbox.right - bbox.left)/2) text_size.x

float pos = ( bbox.left + (( bbox.right - bbox.left ) / 2) - text_size.x/2 )
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я не понял
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
bbox.left - левая позиция бокса
bbox.right - правая позиция бокса
bbox.right - bbox.left = расстояние между ними
bbox.left + ((bbox.right - bbox.left)/2) = центр между left & right позициями
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
bbox.left - левая позиция бокса
bbox.right - правая позиция бокса
bbox.right - bbox.left = расстояние между ними
bbox.left + ((bbox.right - bbox.left)/2) = центр между left & right позициями
а пон
bbox.left - левая позиция бокса
bbox.right - правая позиция бокса
bbox.right - bbox.left = расстояние между ними
bbox.left + ((bbox.right - bbox.left)/2) = центр между left & right позициями
у меня всеровно не получаеца у меня текст перемещается то влево то вправо
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

меня очень удивляет тот факт, что ты не передаешь шрифт в рендер
попробуй так:
C++:
Expand Collapse Copy
void c_visuals::visuals_player::DrawHP() {
    float box_h = (float)fabs(bbox.left - bbox.bottom);

    //if (g_Options.box_outline)
    //    box_h += 2;

    int height = ((health) / 100) - 2;
    int x = bbox.left + 1;
    int y = bbox.bottom - 0;
    int w = 4;
    int h = box_h - 2;
    std::string text = std::to_string(health);

    auto bClr = Color::Black;
    auto hClr = g_Options.hp_clr;

    ImplementAlpha(bClr);
    ImplementAlpha(hClr);

    //if (g_Options.box_outline)
    //    y -= 1;

    float x_position = ( ( bbox.left + ( (bbox.right - bbox.left) * 0.5  ) ) - pFont->CalcTextSizeA(9, FLT_MAX, 0.0f, text.c_str()).x )

    Render::Get().RenderText(text, x_position, y, 9.f, g_Options.hp_clr);

}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
меня очень удивляет тот факт, что ты не передаешь шрифт в рендер
попробуй так:
C++:
Expand Collapse Copy
void c_visuals::visuals_player::DrawHP() {
    float box_h = (float)fabs(bbox.left - bbox.bottom);

    //if (g_Options.box_outline)
    //    box_h += 2;

    int height = ((health) / 100) - 2;
    int x = bbox.left + 1;
    int y = bbox.bottom - 0;
    int w = 4;
    int h = box_h - 2;
    std::string text = std::to_string(health);

    auto bClr = Color::Black;
    auto hClr = g_Options.hp_clr;

    ImplementAlpha(bClr);
    ImplementAlpha(hClr);

    //if (g_Options.box_outline)
    //    y -= 1;

    float x_position = ( ( bbox.left + ( (bbox.right - bbox.left) * 0.5  ) ) - pFont->CalcTextSizeA(9, FLT_MAX, 0.0f, text.c_str()).x )

    Render::Get().RenderText(text, x_position, y, 9.f, g_Options.hp_clr);

}
Screenshot_133.png
 
Назад
Сверху Снизу