演算を使ってみよう
いろいろな関数・演算子
Scratchで使う演算子
円軌道を描く
スクラッチキャットに以下のスクリプトを書いてみよう
変数「角度」を定義しておきます。

往復するスクラッチキャット
端についたら跳ね返る場合はブロックがありますが、
途中で引き返したい場合はこのようにできます。

別の書き方
上記でも動くのですが、「もし」の部分を見ると
条件部分を除き共通です。
これをまとめると以下のようになります。
処理が長くなる場合はこの方が効率的です。
シミュレーション
物理の公式など覚えていなくても表現することが出来ます。
自由落下
自由落下は速度がだんだん速くなっていくので、比較的簡単です。
- 動かしたいスプライトに変数「速度」、「重力」を作ります。
- 速度には0を、重力は下向きに働くので-0.3を代入しておきます。
- ずっと速度に重力を加えてゆき、その数値をy座標に加えていきます。
ジャンプ
上方向に動かすには、上向きに初速度を与えておき、速度に重力分を足すことで徐々に遅くなり、
やがて下向きに動いてゆきます。
- 動かしたいスプライトに変数「速度」、「重力」、「最初の位置」を作ります。
- 速度には10を、重力は下向きに働くので-0.3を代入しておきます。
- ずっと速度に重力を加えてゆき、その数値をy座標に加えていきます。
- このままだとスプライトが地面にめり込んでしまうので。止めたいところまで繰り返すようにしましょう。
バウンド
自由落下のスクリプトに下まできた時に反対方向に動かすことで、バウンドしたように見えます。
- 自由落下のスクリプトに、変数「反発係数」を追加します。
- 下まで来たら速度に-1を掛けて、反対向きの力にします。
- 上までくると重力方向に力が加わり、再び落下します。
これを繰り返すとバウンドを表現できます。
- 反発係数を1にすると永遠にバウンドし続けます。
しかし、これでは誤差がでてずれてくるので、下まで来たときにY座標を初期に戻してあげるとずれを防げます。
- また、反発係数を1より小さくすると、徐々にバウンドの高さがすくなくなり、やがては停止しますが、計算はずっと続いています。そのため、移動距離が1より小さくなると止まるようにしておきましょう。
リンゴを投げるネコ
これらを組み合わせると面白い動きも表現できます。
- まず、スクラッチキャットのコスチュームに切り替えます。
- コスチューム1を複製します。
- 右腕を回転させ、振りかぶったようにします。
- スクラッチキャットのすコードに切り替えます。
- 旗が押されたら、初期位置に来るように設定します。
- スペースバーが押されたら、リンゴに投げた合図を送るため、メッセージを送ります。

- ライブラリからリンゴのイラストを追加します。
- 旗が押されたら、初期設定をして、サイズを小さくし、隠しておきます。
- 投げた合図を受けたら、先ほどの放物線のスクリプトを動かすように設定します。
- スペースバーを押して、合図を送った後、それぞれ少し待つようにすると構えてから投げる感じが出ます。