Scratch(子供向けプログラミング学習環境)を試してみた。すごく簡単にしたUnityって印象

Scratch(子供向けプログラミング学習環境)を試してみた。すごく簡単にしたUnityって印象

インストールは不要で、ブラウザでアクセスしてアカウントも不要で「作る」から、いきなりプログラミングが出来る。
基本的には、命令文パーツをドラッグ・アンド・ドロップして、処理を組んでいく(FileMakerのスクリプトとか、kintoneみたいな感じ)
https://scratch.mit.edu/

いきなりコーディングさせると、タイプミスや記述量の多さでやる気が無くなるので、とりあえず手を動かせて、実際に動作させる!ってのは重要やね。
ブロック遊びに近い触覚的な感じでプログラミングが学べる。
処理パーツは・動き・見た目・音・ペン・制御・調べる・演算・変数の8つのグループに分かれているので、だいたいの場所は覚える。

お約束のHello,World(Scratchでは、「猫」を「10歩動かす」)
a, 左側の命令文パーツから、一番上にある「10歩動かす」をD&Dした。・・・で?
b, 右上の緑色の旗をクリックしても何も起こらない…。
c, 左側の命令文パーツの黄色●のイベントタブをクリックして、「旗が押されたとき」を「10歩動かす」の上にD&Dして、緑旗を押したら動いた!
d, 100歩にしたら、画面の外側に行きそうになって、足だけ見えてる。リセットでどうやるの?
→リセットは無い。猫をD&Dして動かすか、命令文パーツで動かすかの二択!
「x座標を0に、y座標を0にする」で、中央に戻っていく。

for文な「10回繰り返す」で「10歩動かす」だと、「100歩動かす」よりゆっくりと動く感じだな。wait時間が気になる。
「1秒待つ」を入れるとコマ送りみたい。0.01秒とかだと、ほとんど変わらない。
※緑旗を押さなくても、D&Dした命令文パーツ(ブロック)をクリックすると、処理が実行される。

while文な「ずっと」で「10歩動かす」+「もし端についたら、跳ね返る」だと、左右に行ったり来たりするけど、左に行く時に上下逆になるな…。

if文「もし~なら」は、条件式が六角形の命令文パーツしか入らない。

変数があるので、「テスト変数」を作って「変数を~にする」で、「テスト変数」に「現在の年」を代入
「変数[テスト変数]を表示する」で、表示すると猫の画面の左上に、変数の値が出る。

命令パーツの機能をひとつひとつ試してみても、飽きてきたので、もっとゲームっぽい感じにしよう。矢印キーで猫を動かす

「x座標を0に、y座標を0にする」
ずっと
もし「上向き矢印キーが押された」なら
0度に向ける // 「何度に回す」って命令パーツもある
10歩動かす
もし「下向き矢印キーが押された」なら
180度に向ける
10歩動かす
もし「右向き矢印キーが押された」なら
90度に向ける
10歩動かす
もし「左向き矢印キーが押された」なら
-90度に向ける
10歩動かす

ちょっといじってみて思ったのが、
1, 処理のコピペで、範囲選択が出来ないのが残念。適当な大きさのブロックに切り出して、複製するしかないな。
2, スプライト(画像)単位に、D&Dでプログラムを組んでいると、VB6時代を思い出す…。
3, 片手を超える数の処理ブロックになってくると、個々に関数名を付けたくなる!

Scratchでゲーム作りが書いてあって参考になった。
a, 風船割り
b, メテオパニック
c, インベーダー
http://www.greenowl5.com/gprogram/scratch/scratch_010.html

Scratchの基本は、 スプライト(画像)をスクリプトで動かすって事みたい。
スプライト(画像)+スクリプトの組合せで、ゲームなんかを作るのが一番か?