RubyPico
RubyPico

アスキーアートアニメーション

[戻る]

概要

ascii_art

使われている関数

  • sleep
    • 指定時間停止します
  • clearprint
    • TextView.clearprintを同時に実行します
    • 個別に実行するよりも画面のちらつきを抑えることができます

テクニック

sleepclearprintを組み合わせるとアスキーアートアニメーションを作ることができます。

ソースコード

a = <<'EOS'
        (^_^)

        (^o^)

        (^_^)

        (^o^)

        (^_^)

        (-_-)

        (-_-)
          |

        (-_-)
          |
          |

        (-_-)
          |
          |
          |

        (-_-)
          |
          |
          |
         / \

        (-_-)
          |
         /|
          |
         / \

        (-_-)
          |
         /|\
          |
         / \

        (^o^)
     \    |    /
     -  \ | /  -
     /    |    \
         / \

        (^o^)
          |    
        \ | /  
          |    
         / \

EOS

def parse_aa(src)
  array = []
  str = ""

  src.each_line do |line| 
    if line =~ /^$/
      array << str
      str = ""
    else
      str += line
    end
  end

  unless str.empty?
    array << str
  end
  
  array
end

a = parse_aa(a)
c = 0

loop do
  sleep_time = 0.8
  idx = c % a.length
  str = a[idx]
  
  if idx == a.length - 1
    str += "\n"
    str += Time.now.to_s
    sleep_time *= 5
  end
  
  clearprint str
  c += 1
  sleep sleep_time
end