スクラッチコーチキャンプ スクラッチで使える無料素材集
  • 素材
  • 修行
  • はじめての方へ
  • スクラッチゲームの作り方

    Between演算!ゾーンに入ると色が変わるネコ

    Between演算!ゾーンに入ると色が変わるネコ
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

    さぁ、スクラッチでナニ作る!?

    ANDで2つの比較演算子を繋ぐだけで「◯から◯の間」という範囲判定が完結する設計が効いている。Scratchには専用の範囲チェックブロックが存在しないが、「-100より大きい」かつ「100より小さい」という2本の不等号をANDで結ぶだけで境界込みの判定が正確に作れる。この構造はPythonやJavaScriptでも形がまったく同じで、ここで覚えておくと後の言語学習で即座に使えるパターンになる。どう組むのか、作り方を見ていこう。

    動画で見てみよう

    [talk]チャンネル登録して応援よろしく!チャンネル登録する[/talk]

    チュートリアルの元になった作品

    [prj-embed prj="1308533258" mini="1" title="プレイしておこう" prj-title="" prj-author=""]今回の[prj-link prj="1308533258" title="" author=""]スクラッチを作る参考作品[/prj-link]にさせていただきました、ありがとう![/prj-embed]

    今回の目標

    スプライトが左から右へ移動するデモを作ります。x座標が-100から100の間に入ったときだけ色の効果が変わる仕組みをANDと2つの比較演算子で実装します。

    スターター作品をリミックスしよう

    このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
    スターター作品をダウンロード

    このチュートリアルでは作者さんの実装方法を尊重して作ってますが、最低限の改善をしてます。(参考作品と同じものが完成するわけではない点はご注意)

    #1左から右へ移動

    [talk class="m-l-n"]旗をクリックすると、スプライトが画面の左端から右端まで5秒かけてスーッと動くよ。この動きがあるから、次のステップで「x座標が◯から◯の間に入った瞬間」を目で確認できるんだ。[/talk]

    準備

    スプライト「ビトウィーン」を開く

    ビトウィーンビトウィーン
    スプライトについて
    x座標が-100から100の間にあるかを判定し、範囲内なら色の効果をランダムに変化させるデモ用スプライト
    どんな役割か
    スプライトが左から右へ5秒かけて動くよ!x座標が-100から100の間に入ったとき、色の効果がランダムに変化するのが見えるよ。「◯から◯の間なら」という条件をANDと2つの比較演算子で作る方法を視覚的に確認できるよ!

    実装

    step-0

    まず画像効果をリセットしてから、座標(-300, 0)にワープさせる。そこから動き( ) 秒でx座標を ( ) に、y座標を ( ) に変えるで5秒かけて(300, 0)まで滑らかに移動するよ。-300から300まで横一直線に動く感じだね。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    旗を押すとビトウィーンが左端から右端へスーッとグライドしたね。

    #2ANDで範囲判定

    [talk class="m-l-n"]ここからが本題。x座標が-100から100の間にあるときだけ色が変わる仕組みを作るよ。Scratchには「◯から◯の間なら」っていうブロックがないから、ANDで2つの不等号を組み合わせないと片側しかチェックできず、範囲外でも反応しちゃうんだよ。[/talk] step-1

    ずっとループの中で、演算( ) かつ ( )を使って2つの不等号を組み合わせるだけ。「-100 < x座標」かつ「x座標 < 100」、この両方が成り立てば-100から100の間にいるってことだよね。条件に当てはまったら、色の効果を1〜10のランダムな値で変化させるよ。

    ちなみにこの判定だと、x座標がぴったり-100やぴったり100のときは範囲外扱いになるよ。「<(より小さい)」を使ってるから、境界の値は含まれないってこと。

    [talk]「◯から◯の間」をANDと2つの不等号で表現するテクニック、これってプログラミングの世界ではめちゃくちゃ定番のパターンなんだ。PythonでもJavaScriptでも、考え方はまったく同じ。Scratchでこの感覚をつかんでおけば、将来テキストベースの言語に進んだときもスムーズに理解できるよ。[/talk]

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    x座標が-100から100の間にいるときだけ、色の効果がランダムに変化するようになったね。

    まとめ

    ANDと比較演算子を2本組み合わせるだけで、こんなにスッキリ範囲判定が作れるんだね。Scratchには「◯から◯の間」ブロックがないけど、この小技を覚えたらもう困らないよ。PythonやJavaScriptでもまったく同じ書き方をするから、将来テキストコーディングを始めたときにもバッチリ使えるよ!

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!