@iMa3str0

Как анимировать строку ввода?

Вообщем, хочу сделать анимацию строки, чтобы во время ввода человеком (gets) на месте буквы "крутилась палочка"
Сам цикл для поворота палочки вот:
def ss
	while true
		print "|\r"
		sleep 0.2
		print "/\r"
		sleep 0.2
		print "-\r"
		sleep 0.2
		print "\\\r"
		sleep 0.2	
	end
end

А вот как связать его с написанием строки - не понятно...
пробовал через потоки, но ничего не получилось
a = Thread.new { ss }
Может кто подскажет?
  • Вопрос задан
  • 2574 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Shetani
Можно вот так
def spinner
  chars = %w{ | / - \\ }
  thread = Thread.new { yield }
  while thread.alive?
    $stdout.print chars[0]
    sleep 0.5
    $stdout.print "\b"
    chars.push chars.shift
  end
  thread.join
end

Вызывать например так:
spinner do
  name=gets
  puts name
end


Но на месте введенных символов скорее всего будут черточки.
Ответ написан
viktorvsk
@viktorvsk
Если вы хотите, что б одновременно и палочка крутилась, и вводить текст можно было, то это совсем врядли.
Если просто что-то анимировать:
https://github.com/prydonius/spinning_cursor
https://www.ruby-toolbox.com/categories/CLI_Progre...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы