SCRATCHをやってみた!34(最初にゲームの説明する:”リスト”のセリフをしゃべる(1))

前回、ゲームの説明を”リスト”に入れるところをスクリプトにしました。
今回は、”リスト”に入れた説明のセリフをしゃべる部分について、具体的にどのようにするか考えていきましょう。

“リスト”からセリフの取り出し方

前回、”セリフのリスト”というリストにセリフを入れていきました。
このリストから、セリフを取り出す方法としては、例えば1番目のセリフを取り出すには((1▼)番目[セリフのリスト▼])を使うとできます。
この (1▼) というのを変数にすれば、リストに入っているセリフを変数の値の順番でのセリフを取り出すことができます。
ここでは、変数の名前として”リスト番号”とします。

“リスト”から順番に取り出す方法

((リスト番号)番目[セリフのリスト▼])により、”リスト番号”番目のセリフを取り出せます。
これを順番に取り出すには、どうすればいいでしょうか。

。。。”リスト番号”を1つずつ変えていけばいいのでは?

そうです。”リスト番号”を1つずつ変えていけばいいのです。

表示時間を決めて出すのはどこまで?

では、どこまでのセリフを、表示時間を決めて取り出せばいいのでしょうか。
ちなみに([セリフのリスト▼]の長さ)で、リストに入っているセリフの数が分かります。

。。。最後のセリフまで表示時間を決めると、”S”キーを押されるのを待つときは表示されないわ。
   となると、ひとつ前までだわ。

そうですね。
([セリフのリスト▼]の長さ) 以上になったら、繰り返しを抜けて、セリフを表示し続ければいいですね。
この『([セリフのリスト▼]の長さ) 以上』というのは、SCRATCHの「演算」の中にはないので、いくつか組み合わせて作ります。
まず、「演算」の中には”より小さい(>)”、”同じ(=)”、”より大きい(<)”があります。
“以上”の反対は、”未満”、つまり”より小さい(>)”なので、(()ではない) と組み合わせて、次のようになります。
((([セリフのリスト▼]の長さ)>(セリフ番号))ではない)
これが true になると繰り返しを抜けます。

セリフの表示時間の計算方法

セリフの表示時間は、セリフの文字数×0.2秒を切り上げた時間にすることにしました。
まず、セリフの文字数は、「演算」の中にある([world]の長さ)を使って調べます。
つまり、[world]のところに((リスト番号)番目[セリフのリスト▼])を入れることで、”リスト番号”番目のセリフの文字数が分かります。
次に、文字数に0.2をかけるので、([ ]*[ ])を使って、([“文字数”]*[0.2])のようにできます。
最後に 切り上げをするので、([平方根▼](9))を([切り上げ▼](9))にして、(9)のところを今までに計算して出た値を入れればできます。
まとめると次のようになります。
([切り上げ▼]([([((リスト番号)番目[セリフのリスト▼])]の長さ)]*[0.2]))
これを「[ ]と( )秒言う」の( )のところに入れればいいことになります。

セリフをいう部分はどういうふうになるの

今までのところをまとめると、セリフをいう部分は次のようになります。
「((リスト番号)番目[セリフのリスト▼])と([切り上げ▼]([([((リスト番号)番目[セリフのリスト▼])]の長さ)]*[0.2]))秒言う」
結構長いですが、これで(リスト番号)番目のセリフを、セリフの文字数から計算した秒数の間、表示することになります。

今回はここまでにしましょう。
次回は、実際にセリフの文字数に応じた時間表示する部分を作っていきます。
では次回をお楽しみに。

☆前回はSCRATCHをやってみた!33でした。
☆次回はSCRATCHをやってみた!35です。

タイトルとURLをコピーしました