- 締切済み
UWSCでの色判定について
色判定して、クリックするスクリプトを作りたいです。 一応作ったのですが、分かりません。 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 自力で調べてきましたが、これ以上分からないのででアドバイスお願いします。
- みんなの回答 (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がどの程度までだったら許すというのは、試行錯誤で決めてください。