В этой статье рассмотрим один из вариантов создания некоего терминала, на котором выводится текст .
Вкратце это работает так :
На входе мы имеем некий текст который надо напечатать.
Для того чтобы понимать где идет перенос строки в тексте есть символ «/».
Далее мы разбиваем текст на блоки и по очереди подаем его в функцию печати.
В общем то это и всё.
Сцена выглядит следующим образом :
Колор рект тут является подложкой под текст. Так что вы может его не делать.
Скрипт подключен на рут.
Ниже код с небольшими комментариями.
Для начала создаем несколько переменных.
Ну, во первых текст которые надо напечатать.
Counter — по сути это номер символа в тексте который мы будем печатать.
Phraze — номер блока текста , после разбиения по символу «/»
Curren_text — объединение текста после печати
Tim — переменная показывающая активен ли таимер
Первая часть кода — это мерцание цвета.
Вторая — проверяем все ли фразы отпечатались и активен ли таймер. Если нет, то прибавляем к каунтеру и запускаем функцию печати.
Тут вся работа с текстом. Для начала определяемся с тем, какую фразу из текста брать. И пока счетчик меньше чем количество букв во фразе мы её печатаем.
Если счетчик больше чем количество букв в текущей фразе, ты мы переключаем переменную таимера в false, тем самым печать прекращается. Затем прибавляем в счетчику фраз единицу (чтобы в следующем цикле печатать следующую фразу) , и обнуляем счетчик печати.
После чего стартуем таимер. В таимере делаем паузу перед стартом в рандомном диапазоне от 0.1 до 2 секунд
В самом таимере еще раз проверяем не вышли ли мы за пределы всех фраз, и если нет , то поднимаем леибл вверх для эффекта смещения текста , и стартуем цикл печати снова.
Методы :
rsplit() — разбивает текст на блоки по делиметеру . В нашем случае rsplit('/')
left() — номер символа в строке начиная с краинего левого.
size() — размер массива.
length() — длина стринга.
Примерно как то так.
Вариантов реализации конечно же тут может быть много. Можно сделать по разному .
Берите за основу , и удачи !