![ロング体験会](https://manabiail-steam.com/wp-content/uploads/2023/03/263f08deef99ee29c35bfdad3906e03d.png)
Scratch 一部のコスチュームをループする
![Scratch 一部のコスチュームをループする](https://manabiail-steam.com/wp-content/uploads/2023/06/59b74f3583fec96b165ab442cc851450.png)
コスチュームが1~9まであって、1~8までをループさせたい。
というときにどうするかという話です。
1~9をループするのであれば、以下のように書けば、終わりですよね。
![コスチュームをループさせるシンプルなコード](https://manabiail-steam.com/wp-content/uploads/2023/06/d4866d6491f3e2f404a38e6ae203b408.png)
今回ご説明するのは、9は除いて1~8でループさせたいときの話です。
どんな場面で役に立つか
9は除いて1~8でループさせたいってどんなときに使うの?
と思われるかもしれません。
「Bear-walking」というスプライトを使って説明しますね。
![sprite-BearWalking](https://manabiail-steam.com/wp-content/uploads/2023/06/sprite-BearWalking.png)
「Bear-walking」には、コスチュームが8つ用意されていて、このコスチュームをループすると、歩いているようなアニメーションが出来上がります。
![BearWalking歩いているアニメーション](https://manabiail-steam.com/wp-content/uploads/2023/06/8b2d1b082becbef19652632f7bde6af0.gif)
いい感じですね。
今回は、「呼びかけたら(マウスをクリックしたら)こちらを振り向いてくれる」というアプリにしたいと思います。
まずコスチュームを追加します。(Bear-aを追加)。
コスチュームを1つ追加したので、1~9まで9つのコスチュームがありますね。
この状態で、さっきのコードのまま動かすと、呼びかけてもいないのにこっちを振り向きます。
![BearWalking何もせずとも振り向いてしまう](https://manabiail-steam.com/wp-content/uploads/2023/06/aaa912b4462ae406d7fa8279a1232d4e.gif)
こういうときに9を除いて、1~8でループさせたいです。
結論:一部のコスチュームをループさせる方法
前置きが長くなりましたが、9を除いて、1~8でループさせるには、以下のように書きます。
![一部のコスチュームでループさせる正解のコード](https://manabiail-steam.com/wp-content/uploads/2023/06/6bdfa058cd2046d85a293603ec5a4395.png)
動かしてみましょう。
![BearWalking歩いているアニメーション_2](https://manabiail-steam.com/wp-content/uploads/2023/06/35d9b47c4cd0c4f725386da966c6d8ef.gif)
うまくいきましたね。
振り向く動きも加えましょう。
![BearWalkingマウスを押すと振り向くアニメーション](https://manabiail-steam.com/wp-content/uploads/2023/06/338183df70968d3ce9ccaea48cea2d38.gif)
コードはこのようになります。
![振り向く動作を加えたコード](https://manabiail-steam.com/wp-content/uploads/2023/06/2bb9aaa9b50409085577e82d4810d488.png)
もっと厳密にするなら、マウスが押された動作の検知は、別のループにした方がいいのですが、テーマの本筋ではないので、このシンプルなコードで十分でしょう。
ポイント
ということで、ポイントは、この部分ですね。
![一部のコスチュームでループさせるコードのポイント](https://manabiail-steam.com/wp-content/uploads/2023/06/adc2397986f243d78ecbc482ea29d4f9.png)
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しなければできそう。と思うかもしれません。
![一部のコスチュームでループさせる失敗のコード](https://manabiail-steam.com/wp-content/uploads/2023/06/90f9039636bdbf784ab4b3ec0562a14c.png)
確かに、うまく行きそうです。
1の場合は、「8で割った余り」1 → コスチューム番号1
2の場合は、「8で割った余り」2 → コスチューム番号2
・・・
7の場合は、「8で割った余り」7 → コスチューム番号7
8の場合は、「8で割った余り」0 → コスチューム番号0
問題は、この「コスチューム番号0」のときに起こります。
Scratchでは、コスチューム番号に0を指定すると、一番下のコスチュームになってしまいます。
上のコードで動かしてみると、こうなります。
![BearWalking失敗例](https://manabiail-steam.com/wp-content/uploads/2023/06/eeea07e5ba1dab4e7d4d80f1f2fa0942.gif)
こちらを振り向く、一番下のコスチュームが出てきてしまいますね。
なぜ+1なのかがわかっていただけましたでしょうか。
ということで、一部のコスチュームをループさせる方法について説明しました。
頻繁に使うわけではないですが、頭の片隅に覚えておいてください。
おまけ:コスチュームをランダムにする
ちなみにコスチュームをランダムにする方法はこちらです。
![](https://manabiail-steam.com/wp-content/uploads/2022/11/ac7652b2bc0629dfe1fbbcf29936236e-300x169.png)
(終わり)