- 締切済み
UWSCで色識別を行いたいのですが
UWSCで色識別を行いたいのですが PeekColorで白や黒はどうにか識別して反応をえられるようになりました。 が、グレーや色つきのものがどうもうまく反応してくれません。 そこで $CECFCEに前後の範囲を持たせたいのですが そうするためにはどういう構文を用いればよろしいのでしょうか・・・ 色々調べてみましたが 条件を自分でいれてくださいとか 赤青緑それぞれに範囲をもたせてだとか 難しくて大変こまっております・・助言いただけると嬉しいです・・
- みんなの回答 (1)
- 専門家の回答
みんなの回答
noname#194317
回答No.1
いや、RGBそれぞれに範囲を持たせるとしか言いようがないんですけど。で、範囲の持たせ方ですが、$FFFFFFというのはRGBに1バイトずつ、つまり16進で2桁ずつの表記になっています。なので、これを2桁ずつに分解してそれぞれ判定すればよいことになります。 例えば50%グレー($7F7F7F)から多少ずれても認識させたい場合、すご~くベタな方法ですが、こんな感じで。 RGB=PEEKCOLOR(X,Y) R=RGB AND $0000FF G=(RGB AND $00FF00)/$100 B=(RGB AND $FF0000)/$10000 IFB (R>$70 AND R<$8F) AND (G>$70 AND G<$8F) AND (B>$70 AND B<$8F) //成立したとき ELSE //成立しないとき ENDIF この判定だと、RGBがそれぞれ$71~$8Eの範囲に入っていれば、IFBの式が成立します。ということで、$CECFCEの時にも同じように、適当な範囲を与えてやればOKです。