質問編集履歴

1

書式の改善

2020/11/25 08:45

投稿

0812halata
0812halata

スコア0

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,190 @@
28
28
 
29
29
  ```
30
30
 
31
+
32
+
33
+ https://qiita.com/macro_no_deshi/items/dd3b3405123bad0cfe4a#%E7%99%BA%E5%B1%95-%E3%81%82%E3%81%84%E3%81%BE%E3%81%84%E7%94%BB%E5%83%8F%E6%A4%9C%E7%B4%A2
34
+
35
+ こちらのサイトのコードを元にプログラムを編集しております。
36
+
37
+
38
+
39
+ //実際のコードは下記の通りです。
40
+
41
+
42
+
43
+ winid = getid("モンスト 火1-1(1)") //ゲームウィンドウを名前で検索して取得
44
+
45
+ print "ウィンドウIDを取得しました。"
46
+
47
+ print "ID.NOは" + winid
48
+
49
+ winPosX = STATUS(winid,ST_X)
50
+
51
+ winPosY = STATUS(winid,ST_Y)
52
+
53
+ winsizeX = STATUS(winid,ST_WIDTH)
54
+
55
+ winsizeY = STATUS(winid,ST_HEIGHT)
56
+
57
+ print "位置X 位置Y 幅 高さ"
58
+
59
+ print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
60
+
61
+
62
+
63
+
64
+
65
+ //取得した座標の確認
66
+
67
+ print "位置X 位置Y 幅 高さ"
68
+
69
+ print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
70
+
71
+
72
+
73
+ //androidの画面のサイズを設定。(個人の端末による)
74
+
75
+ adbsizeX = 720
76
+
77
+ adbsizeY = 1200
78
+
79
+
80
+
81
+ //ウィンドウサイズとandroid画面サイズの差からNOXのフレームサイズを割り出す。
82
+
83
+ windowflamesize = winsizeY - adbsizeY
84
+
85
+ print "ウィンドウサイズは" + " " + windowflamesize
86
+
87
+
88
+
89
+ MOUSEORG(winid,MORG_DIRECT,MORG_FORE) //MOUSEORGの設定
90
+
91
+
92
+
93
+ //chkimgx関数用のuwsをインクルード
94
+
95
+ CALL ChkImgX.uws
96
+
97
+
98
+
99
+ //CHKIMGXに関する設定項目 ゲームに応じて一括で変更するため最初にまとめて設定
100
+
101
+ x1 = 0 // 検出範囲の左上X座標
102
+
103
+ y1 = 0 // 検出範囲の左上Y座標
104
+
105
+ x2 = 720 // 検出範囲の右下X座標 G_SCREEN_Wは特殊関数で画面の横幅
106
+
107
+ y2 = 1200 // 検出範囲の右下Y座標 G_SCREEN_Hは特殊関数で画面の縦幅
108
+
109
+ Detect_num = 1 // 何個目に検出した場所を対象にするか
110
+
111
+ Threshold_delta = 5 // 発見する画像と誤差 n% の指定
112
+
113
+ Target_color = -1 // 色相を指定して検出できるが、フルカラー判定なら-1を指定
114
+
115
+
116
+
117
+ startup_chkimgx() //CHKIMGX関数開始
118
+
119
+
120
+
121
+ While True //Wendまでの処理を繰り返す
122
+
123
+
124
+
125
+ //" "内に指定した画像を認識したら処理開始(曖昧認識)
126
+
127
+ ifb CHKIMGX("クエスト受注画面へ.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
128
+
129
+ print "クエスト受注画面へを発見しました。" //画像を発見したらログに表示
130
+
131
+
132
+
133
+
134
+
135
+ //検索した座標を別の変数に代入しておく
136
+
137
+ attack_x=g_imgx_x
138
+
139
+ attack_y=g_imgx_y-windowflamesize //ウィンドウの枠の分座標がズレるので補正
140
+
141
+
142
+
143
+ //画像認識で取得した値を代入してDOSCMDで送る内容を作成
144
+
145
+ CMD = "cd /d H:\Nox\bin & nox_adb shell input touchscreen tap " + (attack_x) + " " + (attack_y)
146
+
147
+ print CMD //CMDの内容を確認
148
+
149
+ DOSCMD(CMD) //Noxに操作を送信
150
+
151
+ sleep(1) //操作送信後1秒待機
152
+
153
+
154
+
155
+ //1つ目の画像が見つからなかったら別の画像を検索
156
+
157
+ elseif CHKIMGX("タイトル画面.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
158
+
159
+ print "タイトル画面を発見しました。" //画像を発見したらログに表示
160
+
161
+
162
+
163
+ //検索した座標を別の変数に代入しておく
164
+
165
+ deffence_x=g_imgx_x
166
+
167
+ deffence_y=g_imgx_y-windowflamesize //ウィンドウの枠の分座標がズレるので補正
168
+
169
+
170
+
171
+ //画像認識で取得した値を代入してDOSCMDで送る内容を作成
172
+
173
+ CMD = "cd /d H:\Nox\bin & nox_adb shell input touchscreen tap " + (deffence_x) + " " + (deffence_y)
174
+
175
+ print CMD //CMDの内容を確認
176
+
177
+ DOSCMD(CMD) //Noxに操作を送信
178
+
179
+ sleep(1) //操作送信後1秒待機
180
+
181
+
182
+
183
+ else //上記の条件全てに当てはまらなかった場合
184
+
185
+ print "画像が見つかりません" //メッセージを出す。
186
+
187
+
188
+
189
+ endif //ifbの処理の終了地点
190
+
191
+ sleep(3.5) //()内の秒数待機
192
+
193
+
194
+
195
+ Wend
196
+
197
+ ```
198
+
199
+
200
+
201
+ ### 試したこと
202
+
203
+
204
+
205
+ スクショするソフトを「screenpresso」から「winshot」に変更し、bmpファイルを選択しスクショをするようにしたら画像認識をされるようになったため、画像は問題ないのではないかと考えております。
206
+
207
+
208
+
209
+ どう改善をすればよろしいか、アドバイスいただける幸いです…
210
+
211
+
212
+
213
+ ### 補足情報(FW/ツールのバージョンなど)
214
+
31
215
  //uwscでのログ
32
216
 
33
217
  ウィンドウIDを取得しました。
@@ -184,181 +368,7 @@
184
368
 
185
369
 
186
370
 
187
- //実際のコードは下記の通りです。
371
+
188
-
189
-
190
-
191
- winid = getid("モンスト 火1-1(1)") //ゲームウィンドウを名前で検索して取得
192
-
193
- print "ウィンドウIDを取得しました。"
194
-
195
- print "ID.NOは" + winid
196
-
197
- winPosX = STATUS(winid,ST_X)
198
-
199
- winPosY = STATUS(winid,ST_Y)
200
-
201
- winsizeX = STATUS(winid,ST_WIDTH)
202
-
203
- winsizeY = STATUS(winid,ST_HEIGHT)
204
-
205
- print "位置X 位置Y 幅 高さ"
206
-
207
- print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
208
-
209
-
210
-
211
-
212
-
213
- //取得した座標の確認
214
-
215
- print "位置X 位置Y 幅 高さ"
216
-
217
- print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
218
-
219
-
220
-
221
- //androidの画面のサイズを設定。(個人の端末による)
222
-
223
- adbsizeX = 720
224
-
225
- adbsizeY = 1200
226
-
227
-
228
-
229
- //ウィンドウサイズとandroid画面サイズの差からNOXのフレームサイズを割り出す。
230
-
231
- windowflamesize = winsizeY - adbsizeY
232
-
233
- print "ウィンドウサイズは" + " " + windowflamesize
234
-
235
-
236
-
237
- MOUSEORG(winid,MORG_DIRECT,MORG_FORE) //MOUSEORGの設定
238
-
239
-
240
-
241
- //chkimgx関数用のuwsをインクルード
242
-
243
- CALL ChkImgX.uws
244
-
245
-
246
-
247
- //CHKIMGXに関する設定項目 ゲームに応じて一括で変更するため最初にまとめて設定
248
-
249
- x1 = 0 // 検出範囲の左上X座標
250
-
251
- y1 = 0 // 検出範囲の左上Y座標
252
-
253
- x2 = 720 // 検出範囲の右下X座標 G_SCREEN_Wは特殊関数で画面の横幅
254
-
255
- y2 = 1200 // 検出範囲の右下Y座標 G_SCREEN_Hは特殊関数で画面の縦幅
256
-
257
- Detect_num = 1 // 何個目に検出した場所を対象にするか
258
-
259
- Threshold_delta = 5 // 発見する画像と誤差 n% の指定
260
-
261
- Target_color = -1 // 色相を指定して検出できるが、フルカラー判定なら-1を指定
262
-
263
-
264
-
265
- startup_chkimgx() //CHKIMGX関数開始
266
-
267
-
268
-
269
- While True //Wendまでの処理を繰り返す
270
-
271
-
272
-
273
- //" "内に指定した画像を認識したら処理開始(曖昧認識)
274
-
275
- ifb CHKIMGX("クエスト受注画面へ.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
276
-
277
- print "クエスト受注画面へを発見しました。" //画像を発見したらログに表示
278
-
279
-
280
-
281
-
282
-
283
- //検索した座標を別の変数に代入しておく
284
-
285
- attack_x=g_imgx_x
286
-
287
- attack_y=g_imgx_y-windowflamesize //ウィンドウの枠の分座標がズレるので補正
288
-
289
-
290
-
291
- //画像認識で取得した値を代入してDOSCMDで送る内容を作成
292
-
293
- CMD = "cd /d H:\Nox\bin & nox_adb shell input touchscreen tap " + (attack_x) + " " + (attack_y)
294
-
295
- print CMD //CMDの内容を確認
296
-
297
- DOSCMD(CMD) //Noxに操作を送信
298
-
299
- sleep(1) //操作送信後1秒待機
300
-
301
-
302
-
303
- //1つ目の画像が見つからなかったら別の画像を検索
304
-
305
- elseif CHKIMGX("タイトル画面.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
306
-
307
- print "タイトル画面を発見しました。" //画像を発見したらログに表示
308
-
309
-
310
-
311
- //検索した座標を別の変数に代入しておく
312
-
313
- deffence_x=g_imgx_x
314
-
315
- deffence_y=g_imgx_y-windowflamesize //ウィンドウの枠の分座標がズレるので補正
316
-
317
-
318
-
319
- //画像認識で取得した値を代入してDOSCMDで送る内容を作成
320
-
321
- CMD = "cd /d H:\Nox\bin & nox_adb shell input touchscreen tap " + (deffence_x) + " " + (deffence_y)
322
-
323
- print CMD //CMDの内容を確認
324
-
325
- DOSCMD(CMD) //Noxに操作を送信
326
-
327
- sleep(1) //操作送信後1秒待機
328
-
329
-
330
-
331
- else //上記の条件全てに当てはまらなかった場合
332
-
333
- print "画像が見つかりません" //メッセージを出す。
334
-
335
-
336
-
337
- endif //ifbの処理の終了地点
338
-
339
- sleep(3.5) //()内の秒数待機
340
-
341
-
342
-
343
- Wend
344
-
345
- ```
346
-
347
-
348
-
349
- ### 試したこと
350
-
351
-
352
-
353
- スクショするソフトを「screenpresso」から「winshot」に変更し、bmpファイルを選択しスクショをするようにしたら画像認識をされるようになったため、画像は問題ないのではないかと考えております。
354
-
355
-
356
-
357
- どう改善をすればよろしいか、アドバイスいただける幸いです…
358
-
359
-
360
-
361
- ### 補足情報(FW/ツールのバージョンなど)
362
372
 
363
373
  windows10
364
374