【続】「ずっと」ブロックは1秒間にどれくらい動くか?

Scratch

今回もまた「ずっと」ブロック。

今回は、中に「○秒待つ」を入れて検証します。前回はこちら。

◯秒待つ

「◯秒待つ」ブロック。様々な場面で使う。

プログラムの進行を指定した秒数だけ待つブロックです。
タイミングを測ったり、タイマーを作ったりと、Scratchのブロックの中でも使う場面の多いブロックです。

この「◯秒待つ」ブロックを入れると、変数の増え方はどのくらい変わるのかを検証してみます。

検証プログラム

原型は下になります。

左のスクリプト(ブロックのまとまり)は変数を増やすプログラム。今回は「◯秒待って、変数iを1増やす」という形になっています。
右のスクリプト(ブロックのまとまり)は、1秒経ったらプログラムを止めるものです。

これだと、検証のために何度もスタートボタンを押さなければならないので、
1秒ごとに変数iが増えた量計測して記録し、最後に記録の平均をボールちゃんに発表してもらうというプログラムにします。それが下です。

左は変数を入れるだけのプログラム。右は、1秒ごとの変数を記録して、平均値を出すプログラム。

待ち時間を色々変えて検証!

まずは1秒から。

平均1秒。当然と言えば当然。

次。0.5秒

初回は1だが、それ以外は2。

ここまでは、予想通り。

次、0.2秒

理論値とずれ始める。

理論値は5回のはずだが、4回の時が多く、平均は約4回。プログラムが作動している分、変数入力が遅れているのか・・・?理由はわかりません。

次、0.1秒

平均8回。

平均約8回、ということで、sratchに0.1秒待たせながら作業させると、処理は8回くらいになるということです。0.1秒ごととは言っても、10回処理してくれるわけではないんですね。

さらに行ってみよう。0.05秒。

8の倍数になってる。

平均16回。理論値は20ですから、実際の処理回数は少なくなるようですね。

次、0.02。

理論値は50だから、もうだいぶ少ない。

平均31回。0.02秒待っている感じではなくなっています。

では、0.01秒では?

0.02秒と結果が同じ。

平均31回。もうこれ以上短い時間にしても、変わらなそうです。

「0(ゼロ)秒待つ」にしたらどうなるか?

では試しに、「0(ゼロ)秒待つ」で動かしたらどうなるか、検証してみます。

結果はこちら。

平均31回

平均31回。「◯秒待つ」を入れるだけで、処理数が変わることがわかりました。

scratchのフレーム数

ここまでは「◯秒待つ」で検証しましたが、実験的に、別のブロック(「15度回す」ブロック)に置き換えてもう1回計測してみます。

ボールちゃんがくるくる回転する。

そして、同じように検証した結果がこちら!

平均32回

ここから分かることは何かというと、「scratchのフレーム数が32である」ということなんです。

フレーム数とは、1秒間に入る画像の数で、動画の細やかさなどでも出てくる言葉です。
例えば、映画のフィルムは1秒間に24コマ入っているそうです。最近YouTube動画だと1秒間に30コマ入っているのが多いかな?もっと細かいのだと1秒間に60コマ入っているのもあります。

ゲームの世界でも出てくる用語です。プログラムの1処理にかかる時間を1フレームとして、1秒に何フレーム入るかで、ゲームのキャラクターの動きなどの滑らかさに違いが出てきます。
ひと昔前までのゲームだと1秒間に30フレームだったんですけど、今のゲーム(例えばSwitch版スマブラなど)は1秒間に60フレームらしいです。

scratchは、1秒間に32回処理ができる仕組みになっているようです。ですから、Switchとまではいかなくても、そこそこスムーズな動きができるゲームが作れる、ということになりますね。

まとめ

「ずっと」ブロックについて色々調べたら、最後はscratchのフレーム数にまで話が進んでしまいました。

今回の実験は、とてもシンプルな処理しかしていませんので、もう少し複雑な処理を間に挟むと、1秒間あたりの処理数はさらに下がることが予想されます。

色々試しながら、Scratchを楽しんでみましょう!

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