【SCRATCH】スプライトから別のスプライトの表示・非表示を行う

SCRATCH

SCRATCHの小技を紹介していく記事です。

SCRATCHではスプライトの表示・隠すを制御することができますが、これらを使いこなすことで様々なアニメーションを作成することができます。

今回はあるスプライトから別のスプライトの表示・隠すをコントロールする方法について説明していきます!

スプライトの表示・隠すの基本

まず、コードを配置しているスプライト自体の表示・隠すのコントロールは非常に簡単に行うことができます。

例えば、「このスプライトが押されたとき」→「隠す」という流れにしておくだけで、コードを配置しているスプライトをクリックするとスプライトが隠れます

表示・隠すの課題

この表示・隠すのコントロールですが、一つ課題があります。

それはこの「隠す」という命令については別のスプライトを指定することができず、「隠す」のコードを配置したスプライトしか隠すことができます。

たとえば、CATのスプライトをクリックして隣のAPPLEを隠す、ということは先ほどのような単純なコードではできません。

これを実現するためには一工夫が必要になります。

CATをクリックして隣のリンゴを消したい


他のスプライトを隠す方法

あるスプライトからほかのスプライトの表示・隠すをコントールするには様々な実現方法があると思いますが、今回は変数を用いた方法について紹介したいと思います。

その1:変数の用意

まず、変数としてapple_is_hidedを用意します。CATとAPPLEの間を変数を介してこの変数の受け渡しをしたいため、「すべてのスプライト用」にチェックを入れておきます。

次に、CATのコードとして、次のようにCATをクリックしたらapple_is_hidedが1になるように仕掛けを作ります。

CAT側はこれだけです。

その2:隠す・表示コードの設定

続いてAPPLE側のコードとして次のように設定します。

流れとしては次のような形になっています。

  1. 旗マークでスタート
  2. apple_is_hidedを0で初期化する
  3. ループに入る
  4. apple_is_hidedが1なら隠す
  5. それ以外なら表示する

変数のapple_is_hidedを用意することでCATが押されたかどうかの情報をAPPLE側に受け渡し、APPLE側の処理として隠す、表示するを行う仕組みにしています。

実際の動作としては次のようになります。

スタートした段階で一旦apple_is_hidedが初期化されるため、APPLE が表示され、CATをクリックした段階で隠されます。

発展:接触したらリンゴを消す

先ほど紹介した変数を介して表示・隠すをコントロールする方法を使い、CATがAPLLEに向かっていき、接触したらAPPLEが消えるというスクリプトを作りたいと思います。

まず、APPLE側は特に何も変更を加えません。今まで通りapple_is_hidedが1になったら隠れるようにいしておきます。

手を加えるのはCAT側です。と言ってもとてもシンプルで、「調べる」の中の触れた場合の検知ブロックを使用します。具体的には次のようにスクリプトを組み立てます。

また、CATを動かせるように右方向キーを押したときにCATがX軸方向に10づつ進むようにしておきます。

これでCATを動かしてAPPLEに触れた時にapple_is_hidedが1になるスクリプトができました。

実際に実行した結果がこちらです。

このように変数を介して表示・隠すをコントロールすることでいろいろなアニメーションを作成することができます。

まとめ

スプライトから直接別のスプライトを消すということは標準的なブロックではできませんが、変数を介すことで簡単に行うことができました。

今後もScratch関連の小技を紹介していきたいと思います!

コメント

タイトルとURLをコピーしました