パパ先生のゲーム開発ブログ

二児のパパがゲーム開発アレコレを書いているブログ。Unity / UE4 / Scratch / プログラミングゼミ / プログラミング教育

[Scratch] 「色」との当たり判定

スクラッチでは、

「マウスポインタ」「スプライト」「壁」に当たった(触れた)か?

というのを調べることができます。

f:id:papa-sensei:20200218182423p:plain

 

しかし、スクラッチではこれら以外にも、

特定の「色」に触れたかも調べることができます。

 

色と当たったか判定する

 色に触れたか判定するには、調べるカテゴリの

「○○色に触れた」

「○○色がxx色に触れた」

のブロックを使います。

f:id:papa-sensei:20200218182442p:plain

 

もしブロックを使って、特定の色とスプライトが触れたかを判定できます。

f:id:papa-sensei:20200218184127p:plain

 

 

スプライトの色を調べる

では、相手の「色」はどうやって調べれば良いのでしょう?

例えば、相手のスプライトにリンゴや木などの絵(コスチューム)が設定されていた場合、

その絵は「何色なのか」がわからないと、色と当たり判定が取れません。

 

スプライトの絵の色は、コスチューム内の「塗りつぶし」から

スポイト機能を使って、そのピクセルの色を調べることができます。

f:id:papa-sensei:20200218183348p:plain

 

例えば、リンゴの場合は

   色:99

鮮やかさ:88

 明るさ:93

という色の値になります。

 

この色を触れたブロックの色に設定すれば、

リンゴの赤い部分に触れたか判定できます。

f:id:papa-sensei:20200218183407p:plain


f:id:papa-sensei:20200218184537g:image

赤い部分だけを通れ!など、

スプライトの形や大きさではなく、

特定の色とだけ当たり判定を調べたい時に使えそうです。