Classiclll's Blog

an old boy

カメのタイプライター

イメージ 1





keyさんに宿題を出したんだけど、いろいろやりたい事が多そうで、忘れられてしまっている。

というのは冗談で,短冊モデルの作成に疲れちゃったので、ちょっと息抜き。

【keyさんへの宿題】
  カメの足跡に文字を書いてみること。(P5での文字の扱いはkeyさんの記事が詳しい)

で、これが回答の一例。ソースの中でコメントしている行を生かすと、もう少しおもしろい絵が見える。

#フォント選びを失敗した。コミカルな感じを狙ったけど、P5ではもっとカチッとしたフォントが良さそう。



【7月31日追記】(keyさんのところに書き込んだんだけど、スルーされちゃったので)

 「The quick brown fox jumps over the lazy dog.」は、oldMacTrueTypeフォントフェースサンプルに使われていた【パングラム=いろは歌】

【8月15日追記】
keyさんのために、
・text(s.substring(len,len+1),2,1);
 は文字列sの先頭からlen番目(先頭は0番目)の文字を取り出して1文字描く。
 でも、1文字だけ取り出す場合はs.charAt(len)が適切(ちゃんと調べなくちゃ>自分)
・s=(条件記述 ? 条件がtrueの時に採用する【値】 : 条件がfalseの時に採用する【値】);
 これを使うと、条件次第で文字列sへ代入する値を切り替えられる。
・switch (xx) {case yy: .....default :..} 構文
 if (XX==yy) {....} else if (..) {..} else if (..).....} else {...} の別の書き方
 スクリプトでは
 switch (keyCode) {      //keyCodeの内容(値)が...
   case BACKSPACE :       //BACKSPACEのとき、
   s=(s.length()>0?s.substring(0,s.length()-1):s);
    //文字列sの文字数が0より大きい時
     //文字列sの先頭(0)から末尾の一文字手前(s.length()-1)までの
     「部分」文字列(substring)を文字列sとする。
    //文字列sの文字数が0より大きくない時(空っぽの時)
     //空っぽのままとする。(空っぽのsを代入==何もしない)
   break;  //switchの終わりへ
   case DELETE:       //DELETEのとき、
    :           //いろんなケース
   default :        //どのケースにも当てはまらないとき、
 }

【8月2日こっそり修正】
 タイプライターなんだからキーボードから入力できなきゃ、てんでこっそり機能追加(del/bsで消す事も出来る)
 スクリプトは【いろんな】タイプライターを作ってみようと思う人に取っては十分参考になる(はず)