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

Scratch 一部のコスチュームをループする

Scratch 一部のコスチュームをループする

コスチュームが1~9まであって、1~8までをループさせたい。
というときにどうするかという話です。

1~9をループするのであれば、以下のように書けば、終わりですよね。

コスチュームをループさせるシンプルなコード

今回ご説明するのは、9は除いて1~8でループさせたいときの話です。

目次

どんな場面で役に立つか

9は除いて1~8でループさせたいってどんなときに使うの?
と思われるかもしれません。

「Bear-walking」というスプライトを使って説明しますね。

sprite-BearWalking

「Bear-walking」には、コスチュームが8つ用意されていて、このコスチュームをループすると、歩いているようなアニメーションが出来上がります。

BearWalking歩いているアニメーション

いい感じですね。

今回は、「呼びかけたら(マウスをクリックしたら)こちらを振り向いてくれる」というアプリにしたいと思います。

まずコスチュームを追加します。(Bear-aを追加)。
コスチュームを1つ追加したので、1~9まで9つのコスチュームがありますね。

この状態で、さっきのコードのまま動かすと、呼びかけてもいないのにこっちを振り向きます。

BearWalking何もせずとも振り向いてしまう

こういうときに9を除いて、1~8でループさせたいです。

結論:一部のコスチュームをループさせる方法

前置きが長くなりましたが、9を除いて、1~8でループさせるには、以下のように書きます。

一部のコスチュームでループさせる正解のコード

動かしてみましょう。

BearWalking歩いているアニメーション_2

うまくいきましたね。

振り向く動きも加えましょう。

BearWalkingマウスを押すと振り向くアニメーション

コードはこのようになります。

振り向く動作を加えたコード

もっと厳密にするなら、マウスが押された動作の検知は、別のループにした方がいいのですが、テーマの本筋ではないので、このシンプルなコードで十分でしょう。

ポイント

ということで、ポイントは、この部分ですね。

一部のコスチュームでループさせるコードのポイント

1~8まででループさせたいので、「8で割った余り」とします。
もし1~6でループさせたい場合は、”6”で割った余りとしてください。

変数「コスチューム番号」は0からスタートしています。

0の場合、「8で割った余り」は0ですね。それに1を加えて、コスチューム番号1としています。
1の場合は、「8で割った余り」1+1で、コスチューム番号2
2の場合は、「8で割った余り」2+1で、コスチューム番号3
・・
7の場合は、「8で割った余り」7+1で、コスチューム番号8
8の場合は、「8で割った余り」0+1で、コスチューム番号1

なぜ+1なのか

頭のいい人は、それなら、変数「コスチューム番号」を1からスタートして、+1しなければできそう。と思うかもしれません。

一部のコスチュームでループさせる失敗のコード

確かに、うまく行きそうです。

1の場合は、「8で割った余り」1 → コスチューム番号1
2の場合は、「8で割った余り」2 → コスチューム番号2
・・・
7の場合は、「8で割った余り」7 → コスチューム番号7
8の場合は、「8で割った余り」0 → コスチューム番号0

問題は、この「コスチューム番号0」のときに起こります。

Scratchでは、コスチューム番号に0を指定すると、一番下のコスチュームになってしまいます。

上のコードで動かしてみると、こうなります。

BearWalking失敗例

こちらを振り向く、一番下のコスチュームが出てきてしまいますね。

なぜ+1なのかがわかっていただけましたでしょうか。

ということで、一部のコスチュームをループさせる方法について説明しました。
頻繁に使うわけではないですが、頭の片隅に覚えておいてください。

おまけ:コスチュームをランダムにする

ちなみにコスチュームをランダムにする方法はこちらです。

(終わり)

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

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

この記事を書いた人

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

目次