Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
ВопросКак можно сделать бегующую строку как в лоадере рифка?
если бегущая строка это постепенное появление символов по одному, то просто каждое n-ое время(в моём примере кода это timer > 5, значение 5 ты можешь меня на любое нужное тебе, от него будет зависеть скорость появления последующего символа, разжевал как мог) добавляй по одной букве в свою строку...
вот ( код конечно костыльный, написал на скорую руку, особо не думая, но мне похуй как-то. ):
C++:
std::string needed_text = "gaysisnothumans";
static auto prev_i = 0;
static auto timer = 0;
static std::string our_text = "";
if ( timer++ > 5 && our_text.compare( needed_text ) ) {
for ( auto i = prev_i; i < needed_text.length( ); i++ ) {
our_text.push_back( needed_text.at( i ) );
prev_i = i + 1;
break;
}
timer = 0;
}
text( our_text, pos );
если же просто строку нужно целиком передвигать типа она едет вправо или влево,
то используй интерполяцию/экстраполяцию(
если бегущая строка это постепенное появление символов по одному, то просто каждое n-ое время(в моём примере кода это timer > 5, значение 5 ты можешь меня на любое нужное тебе, от него будет зависеть скорость появления последующего символа, разжевал как мог) добавляй по одной букве в свою строку...
вот ( код конечно костыльный, написал на скорую руку, особо не думая, но мне похуй как-то. ):
C++:
std::string needed_text = "gaysisnothumans";
static auto prev_i = 0;
static auto timer = 0;
static std::string our_text = "";
if ( timer++ > 5 && our_text.compare( needed_text ) ) {
for ( auto i = prev_i; i < needed_text.length( ); i++ ) {
our_text.push_back( needed_text.at( i ) );
prev_i = i + 1;
break;
}
timer = 0;
}
text( our_text, pos );
если же просто строку нужно целиком передвигать типа она едет вправо или влево,
то используй интерполяцию/экстраполяцию(
но а также я ответил отчасти на твой вопрос( также на imgui есть много реализаций разных, поищи)
pos_1 = это изначальная позиция
pos_2 = конечная позиция
step = это определенный шаг, который сделает позиция за один тик, пока мы идем от pos_1 к pos_2 нам нужно этот step увеличивать, то есть делать следующий шаг
Код:
if ( to_start )
for ( auto step = 0.f; step < 1.f; step += 0.01f )
lerp_pos = lerp(pos_1, pos_2, step)
else if ( to_end )
for ( auto step = 1.f; step > 0.f; step -= 0.01f )
lerp_pos = lerp(pos_2, pos_1, step)
самый простой пример, написал уже на телефоне(появилось немного времени), если ты не прям чайник, то поймешь как это переделать под себя
p.s скорее всего ты про progress bar я так понял, но суть в принципе та же