カメのタイプライター
keyさんに宿題を出したんだけど、いろいろやりたい事が多そうで、忘れられてしまっている。
というのは冗談で,短冊モデルの作成に疲れちゃったので、ちょっと息抜き。
で、これが回答の一例。ソースの中でコメントしている行を生かすと、もう少しおもしろい絵が見える。
#フォント選びを失敗した。コミカルな感じを狙ったけど、P5ではもっとカチッとしたフォントが良さそう。
【7月31日追記】(keyさんのところに書き込んだんだけど、スルーされちゃったので)
【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 : //どのケースにも当てはまらないとき、
}
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で消す事も出来る)
スクリプトは【いろんな】タイプライターを作ってみようと思う人に取っては十分参考になる(はず)
タイプライターなんだからキーボードから入力できなきゃ、てんでこっそり機能追加(del/bsで消す事も出来る)
スクリプトは【いろんな】タイプライターを作ってみようと思う人に取っては十分参考になる(はず)