Найти в Дзене

№120. Печать текста через BBcode.

В этой статье соберем эффект печати текста при помощи кастомного BBcode.
Если вы впервые слышите про BBcode, то советую начать с этой статьи. По итогу результат будет выглядеть вот так : Подразумевается что вы уже знаете как создать скрипт и подключить его в RichTextLabel, так что приступим сразу к написанию кода. (если нет — ссылка в начале статьи ) Логика весьма простая : Мы знаем порядковый номер символа через char_fx.absolute_index, и так же знаем количество времени которое прошло от создания текста через char_fx.elapsed_time.
Поэтому всё, что нам нужно сделать, это вычитать из прошедшего времени индекс символа, и подавать это всё в альфу. Таким образом чем ближе символ к началу текста , тем раньше он проявится.
Для того чтобы не выходить за пределы 1.0 , зажмем данные в clamp функцию. Мерцание делается элементарно : подаем рандом на G компонент, так как у нас зеленый цвет символов. Добавляем функцию _process_custom_fx(char_fx). И пишем следующий код : Скорость печатания и скорость

В этой статье соберем эффект печати текста при помощи кастомного BBcode.
Если вы впервые слышите про
BBcode, то советую начать с этой статьи.

По итогу результат будет выглядеть вот так :

Подразумевается что вы уже знаете как создать скрипт и подключить его в RichTextLabel, так что приступим сразу к написанию кода. (если нет — ссылка в начале статьи )

Логика весьма простая : Мы знаем порядковый номер символа через char_fx.absolute_index, и так же знаем количество времени которое прошло от создания текста через char_fx.elapsed_time.
Поэтому всё, что нам нужно сделать, это вычитать из прошедшего времени индекс символа, и подавать это всё в альфу. Таким образом чем ближе символ к началу текста , тем раньше он проявится.
Для того чтобы не выходить за пределы 1.0 , зажмем данные в
clamp функцию.

Мерцание делается элементарно : подаем рандом на G компонент, так как у нас зеленый цвет символов.

Добавляем функцию _process_custom_fx(char_fx). И пишем следующий код :

-2

Скорость печатания и скорость появления можно регулировать при помощи умножения времени и деления индекса.
Например медленная печать но с более длительным переходом:

-3

И более быстрая но с коротким переходом:

-4

Если вместо char_fx.absolute_index использовать char_fx.relative_index, то все строки будут стартовать печать одновременно.

-5

P.S. — Напоминалка.
Если вы подаете текст через код, то перенос строки делается при помощи «\n».

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.

#godot #gdscript #игровой движок #годо #программирование