提供: Japanese Scratch-Wiki

< () 色に触れた (ブロック)

これはひらがな記事です。元記事に戻る

() いろにふれたブロック(しらべるブロックしんぎ(あたりかハズレか)ブロック)は、今やっているスプライトがそのいろにふれたかどうかをしらべるブロックである。そのいろにふれていればTrue(はい)をかえす。また、いくつかのいろにふれているときは、そのすべてのいろにTrueをかえす。

<(#000000)いろにふれた::sensing>

このブロックは、しょうとつ(あたること)をしらべるときにひろくつかわれている。とくにプラットフォーマーでは、つかわれることがおおい。

ひきすう

しらべるいろについては、つぎの2つのやりかたでしていできる。

  1. ブロックのカラースウォッチをクリックしてから、していしたいいろのあるところまでマウスポインターをうごかして、そのばしょをクリックする。このとき、マウスのばしょにあわせて、カラースウォッチのいろもかわっていくので、カラースウォッチがほしいいろになったのをチェックしてそこでマウスをクリックすれば、そのいろがセットされる(マウスのポインターがScratchプロジェクトのそとにでているときは、スウォッチのいろがかわらない)。たとえば、マウスポインターのしたにあおいろのうえにあるときにクリックすれば、カラースウォッチのいろもあおになる。
  2. カラースウォッチに次のようなえんざんブロックを入れる:
<(((r) * (65536)) + (((g) * (256)) + (b))) いろにふれた::sensing>
「r」「g」「b」には、Red(えいごで「あか」)、Green(みどり)、Blue(あお)を0から255のあいだでしていしたすうじがはいる。

ちゅうい

() いろにふれたブロックは、かんがえていないけっかがでることがある。

しくみによるせいげん

スプライトがしていしたいろにふれていないからといって、() いろにふれたブロックがかならず「False」をかえすとはかぎらない。このげんいんは、Scratchがいろをしらべるときのしょりをへらすことをもくてきとした[要出典]、しくみのうえでのせいげんによるものである。ステージでは1600まん(つまり16000000)くらいのいろをだせるかわりに、Scratchがただしくしょりできるいろのかずはずっとすくない[1]。これはつまり、『「() いろにふれたブロック」は、ちがうけれどよくにたいろをしらべたばあい、「まちがった「True」」をkかえすことがおおい』ということだ。おおくのScratcherは、このげんしょうにきづかないかもしれない。しかし、しっかりいろをしわけたいとおもったときは、このScratchのせいげんをおもいだしてがまんしなければいけない。

アンチエイリアス

がぞうのなかには、Scratchペイントエディターではギザギザにみえているものであっても、ステージ上でアンチエイリアスされているものがある。そのため、クリックしていろをえらぶとき、アンチエイリアスとしてうすくなっているはしっこのほうのいろをえらばないようにするひつようがある。

パフォーマンス

なんにんかののScratcherによると、() いろにふれたブロック は、() に触れた (ブロック)にくらべるとしょりのはやさがおそいのできをつける[2]。「がめんをさいびょうがせずにじっこうする」にしていした() カスタムブロックのなかでうごかすとパフォーマンスがなおるが、おなじカスタムブロックで「() にふれた (ブロック) 」をつかうと、「() いろにふれた」ブロックがはやくなったよりパフォーマンスがさがる。

たとえば

  • スプライトをしていしたいろにふれるまでうごかす
<[#000000] いろにふれた::sensing>まで繰り返す
(10) ほうごかす::motion
end
  • スプライトがしていしたいろにふれたらなにかさせる。たとえば、あお(やみずいろ)にふれたら、それにはんのうする
もし <[#0000FF] いろにふれた::sensing> なら
[みずをみつけたぞ!] と (2) びょういう::looks
end
  • していしたいろのカベにぶつかったらだんがんのクローンをけす
<[#cf4141] いろにふれた::sensing>まで繰り返す
 (10) ほうごかす::motion
end
このクローンをさくじょする::control cap
  • スプライトがめいろのいきどまりにきたかどうかをしらべる
ずっと
もし <[#007f00]いろにふれた::sensing> なら
[いきどまりだよー!] と (1) びょういう::looks
  • スプライトのカベとおりぬけをとめる
ずっと
もし <[#ffff7f]いろにふれた::sensing> なら
[xのそくど v] を (0) にする
  • していしたいろにさわったらゲームオーバー
ずっと
もし <[#01efff]いろにふれた::sensing> なら
[ゲームオーバー]と(1) びょういう::looks
 [ゲームオーバー v]をおくる::events

これにつながるかんれんこうもく

しゅってん