![ロング体験会](https://manabiail-steam.com/wp-content/uploads/2023/03/263f08deef99ee29c35bfdad3906e03d.png)
Scratch 画面の下端に触れたとき
![Scratch 画面下端に触れたとき](https://manabiail-steam.com/wp-content/uploads/2022/11/3842d808840a5fb7d9211379a52e8132.png)
Scratch(スクラッチ)でプログラムをつくっていて
特にゲームをつくっていて
スプライトが画面下端に触れたとき
という条件をつけたいとき
ないでしょうか?
どのように実現しますか?
「端に触れた」ときなら、思いつく方も多いはず
![端に触れたときブロック](https://manabiail-steam.com/wp-content/uploads/2022/11/bc05cf538bba5fdf7458fa5f3833891b.png)
これです
これともし~なら
でできそうですよね
でも、今回は下端のみにしたい
この方法について解説します
座標を条件にする方法
まず思いつくのが座標をつかう方法です
上下なので、Y座標ですね
Y座標の下限は-180ですので、
-180あたりで制御するとできそうです
![](https://manabiail-steam.com/wp-content/uploads/2022/01/08799b38c9fd97e50177830e964f7ddf-300x169.png)
![](https://manabiail-steam.com/wp-content/uploads/2022/11/image-36-700x262.png)
![端に着いたらとまるプログラム](https://manabiail-steam.com/wp-content/uploads/2022/11/GIF-2022-11-24-21-48-37.gif)
こんな感じになります
座標はスプライトの中心の位置ですので、
これだと少しずれてしまいます
微調整すると
![スプライトが下端に触れたときコード2](https://manabiail-steam.com/wp-content/uploads/2022/11/a5db8c9a02886a2c9ea9404034c8ddd9-700x257.png)
![画面の下端に触れたとき2](https://manabiail-steam.com/wp-content/uploads/2022/11/3318a333f3f2d108198ad6c43b03a14e.gif)
いい感じですね
ただ、この方法はデメリットがあります
デメリット①スプライトのコスチュームや大きさ、向きなどが変わると、スプライトの下端が変わってしまいうまくいかない
どいうことかと言うと
例えば、大きさを150%にしてみましょう
![画面の下端に触れたとき2-2](https://manabiail-steam.com/wp-content/uploads/2022/11/1f2d49b23af3fca29c9ebf45b8b1f2c2.gif)
スプライトの大きさが変わると、スプライトの下端(足の先)
も変わるので、ずれてしまいます
最初から最後まで同じ大きさだったら、条件文を調整すれば済みますが
プログラムの途中で大きさが変わるといったこともありますよね
向きやコスチュームも同様です
デメリット②スプライトの歩数(動き)が速いと、反応が遅れる
これは少し分かりにくいと思いますが、
スプライトを速く動かすために、
Y座標を-50ずつ変えるとします
Y座標<-120のとき
のように基準線を-120としていると
30も飛び越えてからようやく止まることになります
![画面の下端に触れたときの解説](https://manabiail-steam.com/wp-content/uploads/2022/11/9ecf519c6624df4f82a75c0f6e70d61b-700x525.png)
極端な例ですが、
もう少し小さな数字でも当然発生します
座標を条件文にすると
このような問題が発生します
色を条件にする方法
もう一つの方法が色を条件にする方法です
![色に触れたときブロック](https://manabiail-steam.com/wp-content/uploads/2022/11/f008842350c1c46d84b184935c642177.png)
このブロック使ったことありますか
今回はこのブロックが活躍してくれます
まず背景の下端に細長い長方形をおきます
塗りつぶしの色は好きな色
但し背景の他の場所で使われていない色をつくりましょう
枠線はなしにして下さい
![背景に長方形を](https://manabiail-steam.com/wp-content/uploads/2022/11/e27f7d4485b8e499b3dfb3e27d7c287c-700x379.png)
こんなイメージです
![背景の下端に長方形が置かれた状態](https://manabiail-steam.com/wp-content/uploads/2022/11/8ff1af0b28e38353d03777ecafaa7b64.png)
今回は分かりやすいように目立つピンク色にしましたが、
目立たない色でも構いません
これで準備は完了
色に触れたブロックを条件に使う
先ほど登場した色に触れたブロックを使います
ブロックの色部分をクリックしてみてください
先ほど作ったピンク色を指定します
![色に触れたブロックの使い方](https://manabiail-steam.com/wp-content/uploads/2022/11/GIF-2022-11-24-22-18-43.gif)
色部分をクリックして、色選択画面を出します
スポイトのようなマークを押すと、画面上の好きな箇所の色を指定することができますから
先ほどつくったピンクの長方形をクリックすると
ピンク色を指定することができます
あとはこのブロックをつかって
![色の条件文で画面下端に触れたときを実現](https://manabiail-steam.com/wp-content/uploads/2022/11/4f8f76248ee37ec751aa25c2017f3ac2-700x257.png)
大きさが100%のとき
![色の条件文で画面下端に触れたときを実現](https://manabiail-steam.com/wp-content/uploads/2022/11/GIF-2022-11-24-22-22-13.gif)
上手く行きましたね
大きさを150%に変えても
![色の条件文で画面下端に触れたときを実現](https://manabiail-steam.com/wp-content/uploads/2022/11/GIF-2022-11-24-22-22-51.gif)
こちらも上手く行きました
色を使った条件文だと、座標の場合のような調整が不要で、
大きさや向き、コスチュームが変わってもうまく判定してくれます
もうお気づきかと思いますが、
下端だけじゃなくて、
上端、右端、左端でも同じように対応できます
ぜひ使いこなしてください