電子書籍の厳選無料作品が豊富!

UWSCについて質問があります。
画像認識での簡単なマクロを組めるようになったので
同じ進行で平行処理をやってみたいのですがどのようにコードを組めばいいのかわかりません。

やってみたいことは
ACW(GETID("テキスト1.txt - メモ帳","Notepad"),4,2,640,683,0)
ACW(GETID("テキスト2 ドキュメント (4).txt - メモ帳","Notepad"),641,0,637,680,0)

この二つのファイル(サイズや座標を変えず)にtestAと1回打ち(testAの画像をキャプした画像A)次にtestB(testBをキャプした画像はB.bmp)と打ってみたいです。
一つのコードは組みあがったのですが画像2個認識したら次の構文に移るみたいにしてみたいのですがサンプルとしてのコードをお教えください

一応サンプルコードみながらマクロは組みあがって一つの窓でゲームを動作させるのには問題ないのですが
WHILE (CHKIMG("初期の画面.bmp")=FALSE)//開始画面
IFB CHKIMG( "A.bmp")
y=G_IMG_Y //
BTN(LEFT, CLICK, x+2, y+2, 80)
sleep(0.2)
endif
ELSEIF (CHKIMG("B.bmp")=TRUE) THEN
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x+2, y+2, 80)
sleep(1)
endif
WEND
WHILE (CHKIMG("B.bmp")=FALSE)~WEND//次の戦闘画面
のような構文で数珠繋ぎにして進行させているので片方の窓が置いてけぼりで止まっちゃうので同時進行させたいので、初心者でも分かるようなご教示お願いします。

A 回答 (2件)

コピーしすぎて間違えてました


 >WHILE (CHKIMG(”A.bmp")=FALSE)//開始画面   ここから流れ2
 WHILE (CHKIMG(”B.bmp")=FALSE)//開始画面   ここから流れ2
です
    • good
    • 0

なんか ダブルクオーテーションが " 表記になってるけどここの仕様かな?


やりたいことはわかりました  私も同じようなことをやっています
ただそのコード書くと長くなるし説明も面倒なのでそれは止めておくとして

流れとして
1.A.BMPを検出したらそこをクリック
   検出するまではループ
2.B.Bmpを検出したらそこをクリック
   検出するまではループ
3.次の処理に進む
としたときのサンプルを記載します
WHILE (CHKIMG(”初期の画面.bmp”)=FALSE)//開始画面
に関しては触れてないのであなたが書かれてるコード位置をそのままとしています


WHILE (CHKIMG(”初期の画面.bmp”)=FALSE)//開始画面
  WHILE (CHKIMG(”A.bmp")=FALSE)//開始画面   ここから流れ1
    sleep(0.2)
  wend
  BTN(LEFT, CLICK, G_IMG_X+2,G_IMG_Y+2, 80)

  WHILE (CHKIMG(”A.bmp")=FALSE)//開始画面   ここから流れ2
    sleep(0.2)
  wend
  BTN(LEFT, CLICK, G_IMG_X+2,G_IMG_Y+2, 80)
 
  break
wend

//ここから流れ3
WHILE (CHKIMG(”B.bmp”)=FALSE)~WEND//次の戦闘画面


ループ中にも他のことやりたいとかいった話があるなら
判定をIF分判定などに変更する必要がありますが
(といっても書き方次第でどうにでもできるといえばできる)
break する位置を調整しないとクリック前に流れ3に移ってしまいます
さラに言えばそういった流れにした場合には両方のクリックが
完了した状態なのかをきちんとチェックする必要があります

追加で書いておくと
WHILE (CHKIMG(”初期の画面.bmp”)=FALSE)//開始画面
この条件満たされなかったらいきなり流れ3に飛んでしまいます
    • good
    • 0
この回答へのお礼

ありがとうございます。合間にbreakを挟んでWENDでいいのですね。
WHILEとWENDは必ず一組だとご認識しておりました。

お礼日時:2015/03/28 10:47

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