アプリ版:「スタンプのみでお礼する」機能のリリースについて

色判定して、クリックするスクリプトを作りたいです。
一応作ったのですが、分かりません。
3行目のところは赤だけでなく、赤っぽい色も判断できるよう、範囲を指定したいということで調べました。
「範囲」のところは任意で設定するとのことで、自分は起動しているアプリケーションのみを範囲としたいのですが、分からないのでそのままです。

while True
  if GETKEYSTATE(VK_ESC) then exit
fb (PEEKCOLOR(x,y) and $FF) 範囲 then
   BTN(LEFT, CLICK, x, y, 80)
endif
sleep(2) 
wend

自力で調べてきましたが、これ以上分からないのででアドバイスお願いします。

A 回答 (1件)

そのIfb文の式だと、赤に見えないような色の時にも成立しちゃいますよ。

というのは、and $FFで緑と青の部分が何であっても全部無視している、つまり緑と青に対する赤の割合を全く考慮していません。なので、RGBそれぞれの大きさを調べ、Rよりも他の色の数値の方が大きい場合は赤ではないと判断するようなロジックでなければ、うまくいかないと思います。

例:
RGB = PeekColor(x,y)
R = RGB and $0000FF
G = (RGB and $00FF00) / $100
B = (RGB and $FF0000) / $10000
If(R < G) Then Exit //赤よりも緑の方が多い
If(R < B) Then Exit //赤よりも青の方が多い
Btn(LEFT,CLICK,x,y,80)

Rに対して、GとBがどの程度までだったら許すというのは、試行錯誤で決めてください。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています