スクラッチプログラミング - セリフを一文字ずつひょうじしよう
スプライトがいうセリフの文字を、キーボードで入力(にゅうりょく)されているかのように、ひとつずつ表示(ひょうじ)する方法(ほうほう)をしょうかいします。「ブロック定義(ていぎ)」と「変数(へんすう)」をつかってプログラミングします。
サンプルさくひんを見てみよう
今回(こんかい)しょうかいするのは、スプライトのセリフを一文字ずつ表示(ひょうじ)する方法(ほうほう)です。
ふきだしの中にセリフがどのように表示(ひょうじ)されるのか、ためしてみてください。
みどりのはたをおして、スタートです。プロジェクトは、ScratchのPyxofyページでもごらんになれます。
一文字ずつひょうじするプログラム
ではこれから、「こんにちは」というセリフを、ふきだしの中に一文字ずつ表示(ひょうじ)するプログラムのつくりかたを説明(せつめい)していきます。

1. ブロックをつくろう
さいしょに、ブロック定義(ていぎ)で、セリフを一文字ずつ表示(ひょうじ)するためのブロックをあたらしくつくりましょう。
- ブロックめいに「一文字ずつ」と入力(にゅうりょく)する
- 「ひきすうをついか」をえらぶ

ひきすうとは、値(あたい)のことです。このぶぶんに表示(ひょうじ)するセリフが入るようにします。
- ひきすうに「セリフ」と入力(にゅうりょく)する

セリフを一文字ずつ表示(ひょうじ)するときにつかうブロックができました!

ひきすうにセリフを入れる
スプライトにしゃべらせたいセリフを、ひきすうに入力(にゅうりょく)しましょう。
- ひきすうに「こんにちは」と入力(にゅうりょく)する

あたらしくつくったブロックをつかう準備(じゅんび)ができました!これから、このブロックを定義(ていぎ)して、セリフを一文字ずつ表示(ひょうじ)するためのブロックとしてつかえるようにしていきますよ。
2. へんすうをつくろう
ブロックを定義(ていぎ)するために、まずは、変数(へんすう)をふたつつくります。
- 「かいすう」
セリフの文字をひとつずつかぞえるための変数(へんすう) - 「しゃべる」
表示(ひょうじ)する文字を入れていくための変数(へんすう)

へんすうをしょきかする
変数(へんすう)はつかうまえに初期化(しょきか)して、かならずさいしょのじょうたいからはじまるようにします。
変数(へんすう)しゃべるには、セリフを一文字ずつ入れていくので、さいしょは「からっぽ」にしておきます。変数(へんすう)かいすうは、セリフのいちばん目の文字からかぞえるように、さいしょは「1」にしておきましょう。
- 変数(へんすう)しゃべるをからにする
- 変数(へんすう)かいすうを「1」にする

3. セリフのながさとおなじかいすうくりかえそう
さて、ここからが、じっさいにセリフを一文字ずつ表示(ひょうじ)するための内容(ないよう)になります。すこしむずかしいかもしれませんが、順番(じゅんばん)に見ていきましょう!
セリフを一文字ずつ表示(ひょうじ)するためのかんがえかたは、つぎのようになります。
- 変数(へんすう)の中に、表示(ひょうじ)する文字を入れる
- 変数の値(あたい)を、ふきだしで表示(ひょうじ)する
- 表示(ひょうじ)される文字を、ひとつずつふやす
これを、文字のかずとおなじ回数(かいすう)くりかえすプログラムをつくっていきますよ。文字のかずは、セリフのながさであらわすことができます。
- ()のながさかいくりかえす

ひきすうは、ドラッグして移動(いどう)することができます。ひきすうセリフをドラッグしてくみあわせてください。
- セリフのながさかいくりかえす

セリフのながさとおなじ回数(かいすう)くりかえす準備(じゅんび)ができました!
4. へんすうの中に、ひょうじする文字を入れよう
からっぽの変数(へんすう)しゃべるの中に、表示(ひょうじ)する文字を入れていきましょう。文字をひとつずつ入れるために、「()の()ばんめのもじ」ブロックをつかいます。
- しゃべるを()の()ばんめのもじにする

ひきすうセリフと、変数(へんすう)かいすうを追加(ついか)して、つぎのようにブロックをくみあわせてください。
- セリフのかいすうばんめのもじ

変数(へんすう)かいすうは、さいしょは「1」にしておきましたね。セリフの1ばんめのもじは「こ」なので、からっぽの変数(へんすう)しゃべるの中に「こ」が入ります。
5. へんすうのあたいを、ふきだしでひょうじしよう
変数(へんすう)しゃべるの値(あたい)をふきだしで表示(ひょうじ)して、スプライトがセリフをいうようにしましょう。セリフのブロック「()という」に、変数(へんすう)しゃべるをくみあわせてください。
- しゃべるという

みどりのはたをおすと、スプライトが「こ」というようになりました!

6. ひょうじされる文字を、ひとつずつふやそう
表示(ひょうじ)する文字は、すでにしゃべった文字につなげてふやしていきます。文字をつなげるための「()と()」ブロックをつかって、変数(へんすう)しゃべるの中の文字がふえるようにしましょう。
- しゃべるとセリフのかいすうばんめのもじ

変数(へんすう)かいすうを「1」ずつかえると、2文字目、3文字目と、しゃべる文字をふやしていくことができますよ。
- かいすうを1ずつかえる

みどりのはたをおすと、スプライトが「こんにちは」というようになりました!

セリフの文字はひとつずつ表示(ひょうじ)されますが、このままだとスピードがはやすぎて、順番(じゅんばん)に表示(ひょうじ)されているのがよくわかりません。
7. ひょうじするタイミングをきめよう
「1びょうまつ」ブロックを追加(ついか)して、文字が表示(ひょうじ)されるタイミングをきめましょう。
- 0.2びょうまつ

8. プログラムかんせい
ふきだしの中にセリフを一文字ずつ表示(ひょうじ)するプログラムができました!
ブロックを定義(ていぎ)しておけば、あとは、そのブロックのひきすうにセリフを入力(にゅうりょく)するだけで、いろいろなセリフをしゃべらせることができますよ。

まとめ
今回(こんかい)は、スプライトがいうセリフの文字を、ひとつずつ表示(ひょうじ)する方法(ほうほう)をしょうかいしました。
しゃべるセリフや、文字が表示(ひょうじ)されるタイミングをかえるとどのようになるか、ぜひためしてみてください!
最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!