程式如何撰寫卡關
Posted: 01 Apr 2023, 09:36
目前遇到偵測圖片時,可能會跳出重複的,位置會固定,由上而下顯示,可能會有3~5個(a.b.c.d.e圖),請問要如何分別進行點擊,從下而上呢?
Let's help each other out
https://www.autohotkey.com/boards/
https://www.autohotkey.com/boards/viewtopic.php?f=27&t=115637
Code: Select all
^s::
{
CoordMode "Pixel"
if ImageSearch(&FoundX, &FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, ".\1.png") {
msgbox "X" FoundX " Y" FoundY
if ImageSearch(&FoundX2, &FoundY2, 0, FoundY+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
msgbox "X" FoundX2 " Y" FoundY2
}
}
if FoundX2 || FoundY2請問要如何分別進行點擊,從下而上呢?
Code: Select all
#Requires AutoHotkey v2.0.2
F1::
{
FoundX:="",FoundX2:="",FoundX3:="",FoundX4:="",FoundX5:=""
FoundY:="",FoundY2:="",FoundY3:="",FoundY4:="",FoundY5:=""
CoordMode "Pixel", "Screen"
if ImageSearch(&FoundX, &FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, ".\1.png") {
if ImageSearch(&FoundX2, &FoundY2, 0, FoundY+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
if ImageSearch(&FoundX3, &FoundY3, 0, FoundY2+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
if ImageSearch(&FoundX4, &FoundY4, 0, FoundY3+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
ImageSearch(&FoundX5, &FoundY5, 0, FoundY4+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
}
CoordMode "Mouse", "Screen"
if FoundX5 || FoundY5 {
click FoundX5, FoundY5, 0
sleep 1000
}
if FoundX4 || FoundY4 {
click FoundX4, FoundY4, 0
sleep 1000
}
if FoundX3 || FoundY3 {
click FoundX3, FoundY3, 0
sleep 1000
}
if FoundX2 || FoundY2 {
click FoundX2, FoundY2, 0
sleep 1000
}
if FoundX || FoundY
click FoundX, FoundY, 0
}
Code: Select all
ImageSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ImageFile
Code: Select all
if !FoundX5 && !FoundY5
return
Code: Select all
#Requires AutoHotkey v2.0.2
F1::
{
FoundX:="",FoundX2:="",FoundX3:="",FoundX4:="",FoundX5:=""
FoundY:="",FoundY2:="",FoundY3:="",FoundY4:="",FoundY5:=""
CoordMode "Pixel", "Screen"
if ImageSearch(&FoundX, &FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, ".\1.png") {
if ImageSearch(&FoundX2, &FoundY2, 0, FoundY+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
if ImageSearch(&FoundX3, &FoundY3, 0, FoundY2+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
if ImageSearch(&FoundX4, &FoundY4, 0, FoundY3+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
ImageSearch(&FoundX5, &FoundY5, 0, FoundY4+10, A_ScreenWidth, A_ScreenHeight, ".\1.png")
}
CoordMode "Mouse", "Screen"
if FoundX5 || FoundY5 {
click FoundX5, FoundY5, 0
sleep 1000
}
else
return
if FoundX4 || FoundY4 {
click FoundX4, FoundY4, 0
sleep 1000
}
if FoundX3 || FoundY3 {
click FoundX3, FoundY3, 0
sleep 1000
}
if FoundX2 || FoundY2 {
click FoundX2, FoundY2, 0
sleep 1000
}
if FoundX || FoundY
click FoundX, FoundY, 0
}