ロング体験会 ご応募受付中です

Scratch 画面の下端に触れたとき

Scratch 画面下端に触れたとき

Scratch(スクラッチ)でプログラムをつくっていて
特にゲームをつくっていて

スプライトが画面下端に触れたとき

という条件をつけたいとき
ないでしょうか?
どのように実現しますか?

「端に触れた」ときなら、思いつく方も多いはず

端に触れたときブロック
端に触れたときブロック

これです

これともし~なら
でできそうですよね

でも、今回は下端のみにしたい

この方法について解説します

目次

座標を条件にする方法

まず思いつくのが座標をつかう方法です

上下なので、Y座標ですね
Y座標の下限は-180ですので、
-180あたりで制御するとできそうです

サンプルコード
端に着いたらとまるプログラム

こんな感じになります

座標はスプライトの中心の位置ですので、
これだと少しずれてしまいます

微調整すると

スプライトが下端に触れたときコード2
画面の下端に触れたとき2

いい感じですね

ただ、この方法はデメリットがあります

①スプライトのコスチュームや大きさ、向きなどが変わると、
スプライトの下端が変わってしまいうまくいかない
②スプライトの歩数(動き)が速いと、反応が遅れる

デメリット①スプライトのコスチュームや大きさ、向きなどが変わると、スプライトの下端が変わってしまいうまくいかない

どいうことかと言うと

例えば、大きさを150%にしてみましょう

画面の下端に触れたとき2-2

スプライトの大きさが変わると、スプライトの下端(足の先)
も変わるので、ずれてしまいます

最初から最後まで同じ大きさだったら、条件文を調整すれば済みますが
プログラムの途中で大きさが変わるといったこともありますよね

向きやコスチュームも同様です

デメリット②スプライトの歩数(動き)が速いと、反応が遅れる

これは少し分かりにくいと思いますが、
スプライトを速く動かすために、
Y座標を-50ずつ変えるとします

Y座標<-120のとき
のように基準線を-120としていると

30も飛び越えてからようやく止まることになります

画面の下端に触れたときの解説

極端な例ですが、
もう少し小さな数字でも当然発生します

座標を条件文にすると
このような問題が発生します

色を条件にする方法

もう一つの方法が色を条件にする方法です

色に触れたときブロック
色に触れたときブロック

このブロック使ったことありますか

今回はこのブロックが活躍してくれます

まず背景の下端に細長い長方形をおきます

塗りつぶしの色は好きな色
但し背景の他の場所で使われていない色をつくりましょう

枠線はなしにして下さい

背景に長方形を
背景の下端に長方形を置いた状態

こんなイメージです

背景の下端に長方形が置かれた状態

今回は分かりやすいように目立つピンク色にしましたが、
目立たない色でも構いません

これで準備は完了

色に触れたブロックを条件に使う

先ほど登場した色に触れたブロックを使います

ブロックの色部分をクリックしてみてください
先ほど作ったピンク色を指定します

色に触れたブロックの使い方

色部分をクリックして、色選択画面を出します

スポイトのようなマークを押すと、画面上の好きな箇所の色を指定することができますから
先ほどつくったピンクの長方形をクリックすると
ピンク色を指定することができます

あとはこのブロックをつかって

色の条件文で画面下端に触れたときを実現

大きさが100%のとき

色の条件文で画面下端に触れたときを実現

上手く行きましたね

大きさを150%に変えても

色の条件文で画面下端に触れたときを実現

こちらも上手く行きました

色を使った条件文だと、座標の場合のような調整が不要で、
大きさや向き、コスチュームが変わってもうまく判定してくれます

もうお気づきかと思いますが、
下端だけじゃなくて、
上端、右端、左端でも同じように対応できます

ぜひ使いこなしてください

Scratchは、MITメディア・ラボのライフロング・キンダーガーテン・グループの協力により、Scratch財団が進めているプロジェクトです。https://scratch.mit.edu から自由に入手できます。

シェアおねがいします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

もつさん
プログラミングスクールLの代表
妻、息子、娘の4人家族
プログラミング教育は、子どもの将来を変え、社会を変えるという信念のもと、日々子どもと向き合っています。

目次