-
Автор темы
- #1
если бегущая строка это постепенное появление символов по одному, то просто каждое n-ое время(в моём примере кода это timer > 5, значение 5 ты можешь меня на любое нужное тебе, от него будет зависеть скорость появления последующего символа, разжевал как мог) добавляй по одной букве в свою строку...вот что у меня получилось: Посмотреть вложение 255371
хочу сделать анимированную бегующую строку как в оригинале, не подскажите как сделать?
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 есть много реализаций разных, поищи)нужно целиком передвигать типа она едет вправо или влево,
то используй интерполяцию/экстраполяцию(Пожалуйста, авторизуйтесь для просмотра ссылки.)..
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)
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz