2020年に向けてScratch を勉強してみる ~遊んでみる編~

# Scratch遊んでみた

[2020年に向けてScratch を勉強してみる ~インストール編~] (http://qiita.com/UltraBirdTech/items/1e2cf1e396adf25d8950)の続き
scratchで何ができるか、軽く触って遊んでみました。

## 前提
scratchは、2.0系列（webアプリケーションver）と1.4系列（ローカルに落としてくるver）ありますが、今回は1.4系列を使っています。
2.0系列とデザインが違ったり、2.0系列にしかない機能が追加されていたり少々異なる部分があります。

## 遊び方
遊び方としては、ブロックを組み合わせてスプライト（scratch内でのキャラクターなどのオブジェクトのこと）への命令を作るだけ。
基本、直感でできる。

![スクリーンショット 2016-05-21 15.32.40.png](https://qiita-image-store.s3.amazonaws.com/0/99413/b7015f0d-1dc0-9fb3-06c7-33c10c552842.png)

適当にブロックを並べてみたのですが、画像のように並べるだけで猫が右に10歩分動き２秒間「こんにちは」と喋るという行動を10回繰り返してくれます。

「プログラム言語で書いたらどうなるんだろう？」と考えてしまうのは職業病。

## ウインドウ
scratchは複数のウインドウに分かれています。
![スクリーンショット 2016-05-21 15.43.05.png](https://qiita-image-store.s3.amazonaws.com/0/99413/5935ffa9-c0f5-32a7-c183-b29b93310f34.png)

### 真ん中：スクリプトエリア
![スクリーンショット 2016-05-21 16.16.24.png](https://qiita-image-store.s3.amazonaws.com/0/99413/373a2352-e266-e689-c530-3494d51db85d.png)

タグで分けられており、「スクリプト」、「コスチューム」、「音」があります。
スクリプトはスプライトへのブロックを配置するエリア。
コスチュームはよくわからなかった・・・（この後でてきます）
音はscratchで使用する音を登録したり新しく録音したりできるようです。

### 左：ブロックパレット
左側はブロックパレットと呼ばれるエリアです。
スプライトへの命令をするブロックが置いてあります。
何かスプライトに動きをつけたいなとか思ったら、適当にそれっぽいブロック探して、選んで配置するだけです。
下が、画像と各ブロックのまとまりの中身。

#### 動き
![スクリーンショット 2016-05-21 15.46.17.png](https://qiita-image-store.s3.amazonaws.com/0/99413/a0992d60-61fb-2e76-e3e3-909ec177d571.png)
スプライトへの動きを加えるブロックが準備されています。
座標で指定したりできます。
数学の教科書でグラフでx座標とか何か動く謎の点Pなどを思い出しました。

#### 見た目
![スクリーンショット 2016-05-21 15.48.29.png](https://qiita-image-store.s3.amazonaws.com/0/99413/975e7499-a126-5ccc-47a4-e7b9ba433eb0.png)
スプライトの見た目部分に関するブロック。
発言させるなど、「見た目」というくくりであっているか、少し違和感ありましたが、まぁ突っ込んでも仕方ないか。

コスチュームという単語がありますが、ここで先ほどのスクリプトエリア内のコスチュームタグの役割がわかりました。
![スクリーンショット 2016-05-21 15.59.00.png](https://qiita-image-store.s3.amazonaws.com/0/99413/d8ec763c-8932-5c13-c83f-de1c90042058.png)

このコスチュームを設定することで、スプライトの画像を差し替えることができるようです。
スプライトを歩くように見せることができるっていうことですね。
なるほど。

#### 音
![スクリーンショット 2016-05-21 15.58.02.png](https://qiita-image-store.s3.amazonaws.com/0/99413/7141ebd9-5113-af46-3585-99063e62233d.png)
案の定、音に関するブロックでした。
すべての音を制御したりできるんですね。
音を登録したりするのはスクリプトエリアの「音」タグです。
![スクリーンショット 2016-05-21 16.01.26.png](https://qiita-image-store.s3.amazonaws.com/0/99413/b115c48b-936f-9e4e-11ab-cb5b0842d474.png)

#### ペン
![スクリーンショット 2016-05-21 16.05.59.png](https://qiita-image-store.s3.amazonaws.com/0/99413/48c1f7e3-51b8-8c55-189b-5d4acbe4a9cf.png)
うーん。よくわからん。
どう使うかわからなかったが、おそらくペンの動きを制御してくれるっぽいのはわかった！

#### 制御
![スクリーンショット 2016-05-21 16.10.45.png](https://qiita-image-store.s3.amazonaws.com/0/99413/e783e0fd-91b5-e8d2-413c-ad362643c8b0.png)
ここら辺から職業病が深刻になってくる感じです。
制御構文がずらり。
if とか for とか興奮しちゃいますね。

#### 調べる
![スクリーンショット 2016-05-21 16.11.51.png](https://qiita-image-store.s3.amazonaws.com/0/99413/15168a41-7cd3-24f0-48cc-5b083571eff9.png)
スクリプトの位置やマウスの位置を取得することができる。
ゲームとか、この「調べる」のブロックを多用して作ることになりそうですね。

#### 演算
![スクリーンショット 2016-05-21 16.13.02.png](https://qiita-image-store.s3.amazonaws.com/0/99413/9c45355e-175a-4230-6115-668e7371d3ac.png)
演算です。
if文の中身とかで使いそう。
乱数とか、大なり小なりとか本当にプログラムっぽい。

#### 変数
![スクリーンショット 2016-05-21 16.15.03.png](https://qiita-image-store.s3.amazonaws.com/0/99413/65e5795c-8182-ec7c-ce26-1a4a4953a184.png)
変数をつくれます。
変数だけだなって思ったら、リストを発見。
は、、、配列が作れる！！（実際作ってどうするかは知らん）

### 右上：ステージ
![スクリーンショット 2016-05-21 16.18.03.png](https://qiita-image-store.s3.amazonaws.com/0/99413/99ff18d5-5963-b05a-f371-21d271742a3c.png)

スプライトがプログラムに沿った行動をするか確認できます。
要はデバック環境。
ブロックをクリックしたり、緑の旗をクリックしたりすることでプログラムを実行してくれます。
スプライトの座標とかも表示されているので細かい調整もできそうです。

### 右下：スプライトのリスト
![スクリーンショット 2016-05-21 16.19.26.png](https://qiita-image-store.s3.amazonaws.com/0/99413/6e23fd92-c878-61c9-517d-b817335dfa65.png)
scratch内で使用できるスプライトのリストです。
上部に３つほどボタンがあります。

#### 筆のボタン
自分でスプライトを書くことができます。
![スクリーンショット 2016-05-21 16.21.07.png](https://qiita-image-store.s3.amazonaws.com/0/99413/98080f83-280a-a7c1-c299-dc07192d9a0b.png)

#### フォルダのボタン
外部からファイルも読み込めます。
![スクリーンショット 2016-05-21 16.23.44.png](https://qiita-image-store.s3.amazonaws.com/0/99413/1445dfdb-f50e-8bcb-11aa-b29fb7eb115e.png)

#### 「？」ボタン
最後の「？」ボタンは、スプライトフォルダ内のスプライトをランダムで選択してくれる機能のようです。
何でもいいから、スプライト欲しいっていう時に使う（・・・のか？）

## 勉強の仕方
色々とコミュニティもあるようです。
サンプルとして作りかたをあげてくれているところもあるので、そこで「何ができる」っていうのを増やしていけば、自分なりの作品が作れそうです。

## 所感
直感だけでもある程度いける。

scratch は新しい技術ではないのは知ってました。
調べてみたら、2006年が初出なんですね。
もう１０年経つのに未だに使用されているのは、それだけ優れているソフトウェアなのか、それとも対抗馬となるソフトウェアがないだけなのか。

２０２０年のプログラム教育が始まるかも？っていうところから日本国内で注目されているだけのお話ですかね。