スクラッチプログラミング - セリフを一文字ずつひょうじしよう

スプライトがいうセリフの文字を、キーボードで入力(にゅうりょく)されているかのように、ひとつずつ表示(ひょうじ)する方法(ほうほう)をしょうかいします。「ブロック定義(ていぎ)」と「変数(へんすう)」をつかってプログラミングします。

スクラッチプログラミング - セリフを一文字ずつひょうじしよう
Photo by Markus Winkler / Unsplash

サンプルさくひんを見てみよう

今回(こんかい)しょうかいするのは、スプライトのセリフを一文字ずつ表示(ひょうじ)する方法(ほうほう)です。

ふきだしの中にセリフがどのように表示(ひょうじ)されるのか、ためしてみてください。

みどりのはたをおして、スタートです。プロジェクトは、ScratchのPyxofyページでもごらんになれます。

・・・AD・・・

一文字ずつひょうじするプログラム

ではこれから、「こんにちは」というセリフを、ふきだしの中に一文字ずつ表示(ひょうじ)するプログラムのつくりかたを説明(せつめい)していきます。

「こんにちは」というセリフを一文字ずつ表示するためのプログラム
「こんにちは」というセリフを一文字ずつ表示するためのプログラム

1. ブロックをつくろう

さいしょに、ブロック定義(ていぎ)で、セリフを一文字ずつ表示(ひょうじ)するためのブロックをあたらしくつくりましょう。

  • ブロックめいに「一文字ずつ」と入力(にゅうりょく)する
  • ひきすうをついか」をえらぶ
ブロックを作る画面
ブロックを作る画面

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

  • ひきすうに「セリフ」と入力(にゅうりょく)する
引数を追加する
引数を追加する

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

「一文字ずつ」という名前のブロックが表示されている
「一文字ずつ」という名前のブロック

ひきすうにセリフを入れる

スプライトにしゃべらせたいセリフを、ひきすうに入力(にゅうりょく)しましょう。

  • ひきすうに「こんにちは」と入力(にゅうりょく)する
「一文字ずつ」ブロックの引数を設定する
「一文字ずつ」ブロックの引数を設定する

あたらしくつくったブロックをつかう準備(じゅんび)ができました!これから、このブロックを定義(ていぎ)して、セリフを一文字ずつ表示(ひょうじ)するためのブロックとしてつかえるようにしていきますよ。

2. へんすうをつくろう

ブロックを定義(ていぎ)するために、まずは、変数(へんすう)をふたつつくります。

  • かいすう
    セリフの文字をひとつずつかぞえるための変数(へんすう)
  • しゃべる
    表示(ひょうじ)する文字を入れていくための変数(へんすう)
ブロックパレットに「かいすう」と「しゃべる」という名前のブロックが表示されている
ブロックパレットに「かいすう」と「しゃべる」という名前のブロックが表示されている

へんすうをしょきかする

変数(へんすう)はつかうまえに初期化(しょきか)して、かならずさいしょのじょうたいからはじまるようにします。

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

  • 変数(へんすう)しゃべるをからにする
  • 変数(へんすう)かいすうを「1」にする
定義ブロックの下に変数を初期化するブロックをつなげる
定義ブロックの下に変数を初期化するブロックをつなげる

3. セリフのながさとおなじかいすうくりかえそう

さて、ここからが、じっさいにセリフを一文字ずつ表示(ひょうじ)するための内容(ないよう)になります。すこしむずかしいかもしれませんが、順番(じゅんばん)に見ていきましょう!

セリフを一文字ずつ表示(ひょうじ)するためのかんがえかたは、つぎのようになります。

  • 変数(へんすう)の中に、表示(ひょうじ)する文字を入れる
  • 変数の値(あたい)を、ふきだしで表示(ひょうじ)する
  • 表示(ひょうじ)される文字を、ひとつずつふやす

これを、文字のかずとおなじ回数(かいすう)くりかえすプログラムをつくっていきますよ。文字のかずは、セリフのながさであらわすことができます。

  • ()のながさかいくりかえす
繰り返しのブロックに「りんごのながさ」ブロックを組み合わせる
繰り返しのブロックに「りんごのながさ」ブロックを組み合わせる

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

  • セリフのながさかいくりかえす
引数「セリフ」を組み合わせる
引数「セリフ」を組み合わせる

セリフのながさとおなじ回数(かいすう)くりかえす準備(じゅんび)ができました!

4. へんすうの中に、ひょうじする文字を入れよう

からっぽの変数(へんすう)しゃべるの中に、表示(ひょうじ)する文字を入れていきましょう。文字をひとつずつ入れるために、「()の()ばんめのもじ」ブロックをつかいます。

  • しゃべる()の()ばんめのもじにする
変数「しゃべるを0にする」ブロックに「りんごの1ばんめのもじ」ブロックを組み合わせる
変数「しゃべるを0にする」ブロックに「りんごの1ばんめのもじ」ブロックを組み合わせる

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

  • セリフかいすうばんめのもじ
「りんごの1ばんめのもじ」ブロックに、ひきすう「セリフ」と変数「かいすう」を組み合わせる
「りんごの1ばんめのもじ」ブロックに、ひきすう「セリフ」と変数「かいすう」を組み合わせる

変数(へんすう)かいすうは、さいしょは「1」にしておきましたね。セリフの1ばんめのもじは「こ」なので、からっぽの変数(へんすう)しゃべるの中に「こ」が入ります。

5. へんすうのあたいを、ふきだしでひょうじしよう

変数(へんすう)しゃべるの値(あたい)をふきだしで表示(ひょうじ)して、スプライトがセリフをいうようにしましょう。セリフのブロック「()という」に、変数(へんすう)しゃべるをくみあわせてください。

  • しゃべるという
「こんにちは!という」ブロックに変数「しゃべる」を組み合わせる
「こんにちは!という」ブロックに変数「しゃべる」を組み合わせる

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

吹き出しの中に「こ」と表示されている
吹き出しの中に「こ」と表示されている

6. ひょうじされる文字を、ひとつずつふやそう

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

  • しゃべるセリフのかいすうばんめのもじ
繰り返すたび表示する文字を増やす
繰り返すたび表示する文字を増やす

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

  • かいすうを1ずつかえる
次の文字にする
次の文字にする

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

吹き出しの中に「こんにちは」と表示されている
吹き出しの中に「こんにちは」と表示されている

セリフの文字はひとつずつ表示(ひょうじ)されますが、このままだとスピードがはやすぎて、順番(じゅんばん)に表示(ひょうじ)されているのがよくわかりません。

7. ひょうじするタイミングをきめよう

1びょうまつ」ブロックを追加(ついか)して、文字が表示(ひょうじ)されるタイミングをきめましょう。

  • 0.2びょうまつ
何秒待つかによって、文字の表示される速さが変わる
何秒待つかによって、文字の表示される速さが変わる

8. プログラムかんせい

ふきだしの中にセリフを一文字ずつ表示(ひょうじ)するプログラムができました!

ブロックを定義(ていぎ)しておけば、あとは、そのブロックのひきすうにセリフを入力(にゅうりょく)するだけで、いろいろなセリフをしゃべらせることができますよ。

セリフを一文字ずつ表示するプログラム
セリフを一文字ずつ表示するプログラム

まとめ

今回(こんかい)は、スプライトがいうセリフの文字を、ひとつずつ表示(ひょうじ)する方法(ほうほう)をしょうかいしました。

しゃべるセリフや、文字が表示(ひょうじ)されるタイミングをかえるとどのようになるか、ぜひためしてみてください!

最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!

かんれんきじ

スクラッチプログラミング -「ブロックていぎ」とは?じぶんでつくるブロック
プログラミングにつかうブロックを、あたらしくつくってみましょう。Scratchにはたくさんのブロックが用意(ようい)されていますね。でもそれだけでなく、じぶんでブロックをつくることもできますよ。
スクラッチプログラミング - 「へんすう」でかずをかぞえよう
「変数(へんすう)」で、ゲームでの得点(とくてん)やのこりじかんをかぞえる方法(ほうほう)をしょうかいします。変数(へんすう)はプログラミングでよくつかわれます。どういうものなのか、一緒(いっしょ)に見ていきましょう。
Start Here - Scratch (スクラッチ)
Scratch (スクラッチ)記事(きじ)のレベル別一覧です。初級、中級、上級、拡張機能にわけてまとめました。
・・・AD・・・