Найти тему
Игровой движок Godot engine

#43. Практика.Печатаем текст с переносом и паузами между строк.

В этой статье рассмотрим один из вариантов создания некоего терминала, на котором выводится текст .

Вкратце это работает так :
На входе мы имеем некий текст который надо напечатать.
Для того чтобы понимать где идет перенос строки в тексте есть символ «/».

Далее мы разбиваем текст на блоки и по очереди подаем его в функцию печати.

В общем то это и всё.

Сцена выглядит следующим образом :

-2

Колор рект тут является подложкой под текст. Так что вы может его не делать.
Скрипт подключен на рут.
Ниже код с небольшими комментариями.

-3

Для начала создаем несколько переменных.
Ну, во первых текст которые надо напечатать.
Counter — по сути это номер символа в тексте который мы будем печатать.
Phraze — номер блока текста , после разбиения по символу «/»
Curren_text — объединение текста после печати
Tim — переменная показывающая активен ли таимер

-4

Первая часть кода — это мерцание цвета.
Вторая — проверяем все ли фразы отпечатались и активен ли таймер. Если нет, то прибавляем к каунтеру и запускаем функцию печати.

-5

Тут вся работа с текстом. Для начала определяемся с тем, какую фразу из текста брать. И пока счетчик меньше чем количество букв во фразе мы её печатаем.

Если счетчик больше чем количество букв в текущей фразе, ты мы переключаем переменную таимера в false, тем самым печать прекращается. Затем прибавляем в счетчику фраз единицу (чтобы в следующем цикле печатать следующую фразу) , и обнуляем счетчик печати.
После чего стартуем таимер. В таимере делаем паузу перед стартом в рандомном диапазоне от 0.1 до 2 секунд

-6

В самом таимере еще раз проверяем не вышли ли мы за пределы всех фраз, и если нет , то поднимаем леибл вверх для эффекта смещения текста , и стартуем цикл печати снова.

Методы :


rsplit() — разбивает текст на блоки по делиметеру . В нашем случае rsplit('/')
left() — номер символа в строке начиная с краинего левого.
size() — размер массива.
length() — длина стринга.

Примерно как то так.
Вариантов реализации конечно же тут может быть много. Можно сделать по разному .
Берите за основу , и удачи !

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц