程式如何撰寫卡關

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

程式如何撰寫卡關

Post by wiki3345678 » 01 Apr 2023, 09:36

目前遇到偵測圖片時,可能會跳出重複的,位置會固定,由上而下顯示,可能會有3~5個(a.b.c.d.e圖),請問要如何分別進行點擊,從下而上呢?

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 01 Apr 2023, 13:21

比如
image.png
image.png (9.2 KiB) Viewed 1002 times

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
else if FoundX || FoundY

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

Re: 程式如何撰寫卡關

Post by wiki3345678 » 01 Apr 2023, 17:32

謝謝,所以是有找到才會點擊,沒找到就不會點擊,是吧!不好意思,我邏輯不太好……

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 02 Apr 2023, 02:44

是的

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
}

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

Re: 程式如何撰寫卡關

Post by wiki3345678 » 02 Apr 2023, 09:04

1.Y2.Y3.Y4.Y5,後面的0是什麼意思呢?
2.請問+10是從圖的中心到下一張圖的中心位置嗎?
我這邊的文件都是只有Y座標不同,X座標相同,只要更改後面+10的數值嗎

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 02 Apr 2023, 10:04

1.

Code: Select all

ImageSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ImageFile
https://www.autohotkey.com/docs/v2/lib/ImageSearch.htm
image.png
image.png (14.25 KiB) Viewed 915 times
2.是從圖的左上角到下一張圖的中心位置,只需更改Y坐標

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

Re: 程式如何撰寫卡關

Post by wiki3345678 » 02 Apr 2023, 20:20

程式寫完後,設定X1~X5,Y1~Y5,若視窗跳出只有3.4個會停下不動作,可是跳出五個又會繼續動作
請問該怎麼修改呢?? 若X5.Y5沒偵測到就不點擊動作

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 04 Apr 2023, 00:55

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
}

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

Re: 程式如何撰寫卡關

Post by wiki3345678 » 04 Apr 2023, 15:50

請問V2的程式,可以用在V1嗎?
目前使用的是V1的版本

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 05 Apr 2023, 02:57

不可以,但可以安裝兩個版本,建議使用v2

wiki3345678
Posts: 7
Joined: 01 Apr 2023, 09:19

Re: 程式如何撰寫卡關

Post by wiki3345678 » 05 Apr 2023, 06:16

那如果是V1,你上一個回的程式,要怎麼修改呢?
V2還沒有用過,抱歉

WKen
Posts: 182
Joined: 21 Feb 2023, 00:01

Re: 程式如何撰寫卡關

Post by WKen » 05 Apr 2023, 07:11

不知道,我也是初學者 8-) ,v2感覺更容易學,沒理由學習v1 :think:

Post Reply

Return to “请求帮助”