さぁ、スクラッチでナニ作る!?
ANDで2つの比較演算子を繋ぐだけで「◯から◯の間」という範囲判定が完結する設計が効いている。Scratchには専用の範囲チェックブロックが存在しないが、「-100より大きい」かつ「100より小さい」という2本の不等号をANDで結ぶだけで境界込みの判定が正確に作れる。この構造はPythonやJavaScriptでも形がまったく同じで、ここで覚えておくと後の言語学習で即座に使えるパターンになる。どう組むのか、作り方を見ていこう。
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1左から右へ移動
準備
スプライト「ビトウィーン」を開く
| スプライトについて |
|---|
| x座標が-100から100の間にあるかを判定し、範囲内なら色の効果をランダムに変化させるデモ用スプライト |
| どんな役割か |
| スプライトが左から右へ5秒かけて動くよ!x座標が-100から100の間に入ったとき、色の効果がランダムに変化するのが見えるよ。「◯から◯の間なら」という条件をANDと2つの比較演算子で作る方法を視覚的に確認できるよ! |
実装
まず画像効果をリセットしてから、座標(-300, 0)にワープさせる。そこから( ) 秒でx座標を ( ) に、y座標を ( ) に変えるで5秒かけて(300, 0)まで滑らかに移動するよ。-300から300まで横一直線に動く感じだね。
#2ANDで範囲判定
ずっとループの中で、( ) かつ ( )を使って2つの不等号を組み合わせるだけ。「-100 < x座標」かつ「x座標 < 100」、この両方が成り立てば-100から100の間にいるってことだよね。条件に当てはまったら、色の効果を1〜10のランダムな値で変化させるよ。
ちなみにこの判定だと、x座標がぴったり-100やぴったり100のときは範囲外扱いになるよ。「<(より小さい)」を使ってるから、境界の値は含まれないってこと。
まとめ
ANDと比較演算子を2本組み合わせるだけで、こんなにスッキリ範囲判定が作れるんだね。Scratchには「◯から◯の間」ブロックがないけど、この小技を覚えたらもう困らないよ。PythonやJavaScriptでもまったく同じ書き方をするから、将来テキストコーディングを始めたときにもバッチリ使えるよ!