天天愛消除輔助-按鍵精靈手機安卓版-天天愛消除輔助Android源碼-按鍵精靈腳本

無意中看到按鍵精靈出Android版了,想了解一下,所以加入了內測,

由於腳本語法和VB差不多,所以上手很快,寫了個天天愛消除的腳本來練習一下,

很早就知道按鍵精靈了,但一直沒寫過其腳本,這個算是我的第一個按鍵精靈腳本吧!



/****
測試手機 小米1S
分辨率   480*854
遊戲方格 68*68
起始點   3,223
**/

Dim baseX,baseY,boxW,boxH
Dim I,X,Y,maxX,maxY,ret,Box(8, 8)

baseX = 3
baseY = 223
boxW  = 68
boxH  = 67.5
maxX  = 7
maxY  = 7
ret = 0

KeepScreen(true)
TracePrint "開始消除。。。"

'還沒加入判斷開始與結束的條件,使用時手工點停止
For I = 1 To 200
	'TracePrint I
	Call ReadBox()

	For Y = 1 To maxY
	For X = 1 To maxX
		ret = CheckMove(X, Y, maxX, maxY)
		Select Case ret
		Case 1 '上移
			Tap baseX+(X-1)*boxW+30,baseY+(Y-1)*boxH+30
			Tap baseX+(X-1)*boxW+30,baseY+(Y-2)*boxH+30
		Case 2 '右移
			Tap baseX+(X-1)*boxW+30,baseY+(Y-1)*boxH+30
			Tap baseX+X*boxW+30,baseY+(Y-1)*boxH+30
		Case 3 '下移
			Tap baseX+(X-1)*boxW+30,baseY+(Y-1)*boxH+30
			Tap baseX+(X-1)*boxW+30,baseY+(Y)*boxH+30
		Case 4 '左移
			Tap baseX+(X-1)*boxW+30,baseY+(Y-1)*boxH+30
			Tap baseX+(X-2)*boxW+30,baseY+(Y-1)*boxH+30
		End Select
	Next
	Next

Next

TracePrint "消除結束!!!"
KeepScreen(false)
EndScript


'確定方塊往哪個方向移動(返回:0-無,1-上,2-右,3-下,4-左)
Function CheckMove(x, y, maxX, maxY)
	Dim ret
	ret = 0
	'往上移
	If ret=0 And y>1 Then
		If x>2 And BoxMatch(x-2,y-1, x-1,y-1, x,y) Then
			ret = 1
		End If
		If x>1 And x<maxX And BoxMatch(x-1,y-1, x,y, x+1,y-1) Then
			ret = 1
		End If
		If x<maxX-1 And BoxMatch(x,y, x+1,y-1, x+2,y-1) Then
			ret = 1
		End If
		If y>3 And BoxMatch(x,y-3, x,y-2, x,y) Then
			ret = 1
		End If
	End If
	'往右移
	If ret=0 And x<maxX Then
		If y>2 And BoxMatch(x+1,y-2, x+1,y-1, x,y) Then
			ret = 2
		End If
		If y>1 And y<maxY And BoxMatch(x+1,y-1, x,y, x+1,y+1) Then
			ret = 2
		End If
		If y<maxY-1 And BoxMatch(x,y, x+1,y+1, x+1,y+2) Then
			ret = 2
		End If
		If x<maxX-2 And BoxMatch(x,y, x+2,y, x+3,y) Then
			ret = 2
		End If
	End If
	'往下移
	If ret=0 And y<maxY Then
		If x>2 And BoxMatch(x-2,y+1, x-1,y+1, x,y) Then
			ret = 3
		End If
		If x>1 And x<maxX And BoxMatch(x-1,y+1, x,y, x+1,y+1) Then
			ret = 3
		End If
		If x<maxX-1 And BoxMatch(x,y, x+1,y+1, x+2,y+1) Then
			ret = 3
		End If
		If y<maxY-2 And BoxMatch(x,y, x,y+2, x,y+3) Then
			ret = 3
		End If
	End If
	'往左移
	If ret=0 And x>1 Then
		If y>2 And BoxMatch(x-1,y-2, x-1,y-1, x,y) Then
			ret = 4
		End If
		If y>1 And y<maxY And BoxMatch(x-1,y-1, x,y, x-1,y+1) Then
			ret = 4
		End If
		If y<maxY-1 And BoxMatch(x,y, x-1,y+1, x-1,y+2) Then
			ret = 4
		End If
		If x>3 And BoxMatch(x-3,y, x-1,y, x,y) Then
			ret = 4
		End If
	End If
	CheckMove = ret
End Function

'判斷三個方塊能否連線
Function BoxMatch(x1, y1, x2, y2, x3, y3)
	Dim b1, b2, b3
	b1 = Box(x1, y1)
	b2 = Box(x2, y2)
	b3 = Box(x3, y3)
	If BoxEquals(b1, b2) And BoxEquals(b1, b3) Then
		BoxMatch = True
	Else
		BoxMatch = False
	End If
End Function

'判斷兩個方塊是否一樣
Function BoxEquals(box1, box2)
	If ColorDiff(box1,box2)<50 Then
		BoxEquals = True
	Else
		BoxEquals = False
	End If
End Function

'讀入方塊佈局
Sub ReadBox()
	KeepCapture
	Dim X,Y
	For Y = 1 To maxY
	For X = 1 To maxX
		Box(X,Y)=GetPixelColor(baseX+(X-1)*boxW+30, baseY+(Y-1)*boxH+30)
	Next
	Next
	ReleaseCapture
End Sub








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章