後方支援再出撃を掘り下げる
前回のでっちあげ改
while true
sleep(適当)
ifb chkimg("画像1") then
btn(LEFT,CLICK,X適当,Y適当)
sleep(反応待ち)
chkimg("画像2") //再出撃ボタン探し
btn(LEFT,CLICK,G_IMGX_X,G_IMGX_Y)
endif
wendそのまま動作させた勇者はいないと思いますが、この程度の処理でもそれなりにハマって止まります
止まる理由を調べるのが楽しかったりウザかったりしますが、そこそこの確率でクリック無視されることが多いです
エミュレータのせいなのかアプリ側の問題なのかは判りません(人間が押しても怪しい時があるよね)
そんなこんなでクリック無視される対策は状態遷移を細かくチェックするしかありません
面倒くさいことこの上ないですがループ監視を仕込みましょう
while true
sleep(適当)
ifb chkimg("画像1") then
repeat
btn(LEFT,CLICK,X適当,Y適当)
sleep(反応待ち)
until chkimg("画像2") //再出撃ボタン探し
while chkimg("画像2")
btn(LEFT,CLICK,G_IMGX_X,G_IMGX_Y)
sleep(反応待ち)
wend
endif
wend両者のsleep時間は反応時間から見込んでまっとうに反応してればスルーで通過出来る程度に設定します
repeatとwhileは条件判断がそれぞれループの末尾/先頭になっている関係で少なくとも処理される/一度も処理されないという
違いがありますから、画面遷移をイメージして使い分けます
今回の例だとrepeatループでは画像2が見えるまでクリックし続けるイメージです
whileループは画像2が見えてる限りボタンを押しに行きます、ぶっちゃけrepeat/until に変えてnot演算(!マーク)でも
今回のケースでは違い出ない(はず)
repeat
btn(LEFT,CLICK,G_IMGX_X,G_IMGX_Y)
sleep(反応待ち)
until !(chkimg("画像2"))初回叩きに行く時のG_IMGX_X/Yは気持ち悪いですが直上のループ終段で画像2をCHKIMGしてるので良いことにします