Scratch の Tips 2つを簡易にお試し（「擬似的なグリッド上にのみスプライトを置く」、「接触判定をするスプライトを変える」の 2つ）

## 今回の内容
この記事は、以下の記事でたくさん書かれている Tips のうち、2つをできるだけシンプルなプログラムで試してみる、という趣旨のものです。

●Scratchで使える意外なテクニックいろいろ - Qiita
　https://qiita.com/Poteto143/items/7bf4ba7b06c7f63d4e7c

### 試してみた時のツイート
こちらは、この後に出てくるお試しをしていた時のツイートです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">CoderDojo でメンターをやりつつ、以下の記事に書かれた内容を試してみてる。<br>まずは、「擬似的なグリッド上にのみスプライトを置く」のお試し！<br><br>●Scratchで使える意外なテクニックいろいろ - Qiita<br>　<a href="https://t.co/GfBgzwnqz9">https://t.co/GfBgzwnqz9</a><a href="https://twitter.com/hashtag/Scratch?src=hash&amp;ref_src=twsrc%5Etfw">#Scratch</a> <a href="https://t.co/iE5GjVRcrE">pic.twitter.com/iE5GjVRcrE</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1487659998058774530?ref_src=twsrc%5Etfw">January 30, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">CoderDojo でメンターをやりつつ、以下の記事に書かれた内容を試してみる、というものの第2弾。。<br>「接触判定をするスプライトを変える」のお試し！<br><br>●Scratchで使える意外なテクニックいろいろ - Qiita<br>　<a href="https://t.co/GfBgzwnqz9">https://t.co/GfBgzwnqz9</a><a href="https://twitter.com/hashtag/Scratch?src=hash&amp;ref_src=twsrc%5Etfw">#Scratch</a> <a href="https://t.co/7ZJUq6U0w8">pic.twitter.com/7ZJUq6U0w8</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1487663873692155904?ref_src=twsrc%5Etfw">January 30, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 試した内容
ここで、試した内容の補足などを書いていきます。

### 擬似的なグリッド上にのみスプライトを置く
1つ目は「擬似的なグリッド上にのみスプライトを置く」という内容で、元記事では以下のように掲載されているものです。
![擬似的なグリッド上にのみスプライトを置く](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ac7d54a6-5a5b-6a93-c295-f8ed3ab353f1.png)
マウスカーソルの位置をそのままスプライトの位置にするのではなく、そこから剰余演算を使った計算結果を減算して、一定間隔で離散的な値をとるようにする、というものでした。

こちらは、ｘy の両方の座標に適用するようにしつつ、剰余演算に用いる値を最初に変数で指定するような形にしました。
なお、位置を変更するブロックは、いっぺんに xy の両方を変えるものもありますが、分けたほうが見やすかったので、ブロックを分けました（コメントで補足していたりします）。
![試したプログラム（擬似的なグリッド上にのみスプライトを置く）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/df6cb77b-b8c2-e8f7-8b6e-d6a36df89dee.png)

### 接触判定をするスプライトを変える
2つ目は「接触判定をするスプライトを変える」という内容で、元記事では以下のように掲載されているものです。
![接触判定をするスプライトを変える](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/287f40eb-95b3-846e-1496-04b9d4c0fdb3.png)
通常、プルダウンで選択式になっている部分へ、文字列を設定できるブロックを入れてやればそれでも OK という仕様を使っているようです。

こちらは、ネコがバナナかリンゴに接触すると、特定条件で「こんにちは！」という言う、というものにしてみました。
特定条件というのは、タイマーの値を特定の数（以下の例では「6」）での剰余演算を行い、その結果で得られる数値の半分ずつ範囲を、条件分岐に用いるというものです。
![試したプログラム用のスプライト（接触判定をするスプライトを変える）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/863b73ff-8c71-781d-3e17-e29b9a2428be.png)
![試したプログラム（接触判定をするスプライトを変える）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b0891541-b3bc-61b4-cb37-bed12d5b82fb.png)
上記の例の動きとしては、おおよそ 3秒ごとに、接触判定が行われる対象がきりかわる、というものになります（接触判定用のブロックの文字列を指定する部分は、変数を作って、スプライト名の文字列を格納しています）。

## 公開プロジェクト
それぞれの Scratch のプロジェクトを公開していますので、以下から試していただくことも可能です。

●「擬似的なグリッド上にのみスプライトを置く」
https://scratch.mit.edu/projects/636201802/

●「接触判定をするスプライトを変える」
https://scratch.mit.edu/projects/636204489/

## おわりに
冒頭に書いていた記事は、まだまだ面白そうな Tipｓ がいろいろ掲載されていたので、他のものも試していければと思っています。