Что нового

При цвете пикселя жмёт определённую кнопку

vadiqwe

Новичок
Сообщения
15
Репутация
0
Версия AutoIT: 3.3.6.1
Описание:
Есть 6 пикселей:
1. 570, 710
2. 621, 710
3. 672, 710
4. 724, 710
5. 777, 710
6. 830, 710

6 кнопок
1. a
2. s
3. d
4. j
5. k
6. l (L)

6 цветов
1. 0x00FF00
2. 0xC1272D
3. 0:rofl:9E021
4. 0x0070BC
5. 0xF7931E
6. 0x93278F

Суть что нужно зделать:
Если в данной коорденате с произвольного цвета цвет изменился на наш то скрипт зажимает нужную кнопку и держит её пока цвет не станит другим
Примечания:

Я совместил списки клавишь, координат, цветов
То есть из списка 1 цвет относится в 1 координате из списка и 1 цвету
1. 570, 710
1. a
1. 0x00FF00
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
vadiqwe
ты вот это читал? http://autoit-script.ru/index.php/topic,124.0.html
и еще, что за кнопка? не богом же она дана. ну а вот это
Координаты Цвет Кнопки
Связаны между собой 1 = 1 = 1
2 = 2 = 2
вообще непонятно что... пиши яснее, что надо и про правила не забудь
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Код:
HotKeySet("{END}", "_Exit")

;~ 						  0   1   2     3     4
Global $aPixels[5][5] = [ _
		[270, 710, "a", 0x00FF00, 0], _
		[621, 710, "s", 0xC1272D, 0], _
		[672, 710, "d", 0xD9E021, 0], _
		[724, 710, "j", 0x0070BC, 0], _
		[777, 710, "k", 0xF7931E, 0], _
		[830, 710, "l", 0x93278F, 0]]

; ===============================================
; Тут, скорее всего, должны быть какие-то условия
; ===============================================

While 1
	For $n = 0 To 5
		If PixelGetColor($aPixels[$n][0], $aPixels[$n][1]) = $aPixels[$n][3] Then
			Send("{" & $aPixels[$n][2] & " DOWN}") ; можно ControlSend
			$aPixels[$n][4] = 1
		ElseIf PixelGetColor($aPixels[$n][0], $aPixels[$n][1]) <> $aPixels[$n][3] And $aPixels[$n][4] <> 1 Then
			Send("{" & $aPixels[$n][2] & " UP}") ; можно ControlSend
			$aPixels[$n][4] = 0
		Else
			Sleep(10)
		EndIf
	Next
	Sleep(5)
WEnd

Func _Exit()
	For $n = 0 To 5
		Send("{" & $aPixels[$n][2] & " UP}") ; можно ControlSend
	Next
	Exit
EndFunc   ;==>_Exit


На работоспособность не проверял!
 
Автор
V

vadiqwe

Новичок
Сообщения
15
Репутация
0
ae5d6b4a633d3d3a1fa86f5f79c3dd6f.png


Вот ошибка просто скопировал и запустил
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
Global $aPixels[6][5] = [ _
        [270, 710, "a", 0x00FF00, 0], _
        [621, 710, "s", 0xC1272D, 0], _
        [672, 710, "d", 0xD9E021, 0], _
        [724, 710, "j", 0x0070BC, 0], _
        [777, 710, "k", 0xF7931E, 0], _
        [830, 710, "l", 0x93278F, 0]]



Добавлено:
Сообщение автоматически объединено:

SECTOR [?]
На работоспособность не проверял!
а надо бы. в разделе стола заказов старайся публиковать исключительно рабочие коды, без дальнейших доводок, допилов и танцев.
 

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
Local $sCoord[7] = ["570, 710", "621, 710", "672, 710", "724, 710", "777, 710", "830, 710"]
Local $sColor[7] = ["0x00FF00", "0xC1272D", "0xD9E021", "0x0070BC", "0xF7931E", "0x93278F"]
Local $sButton[7] = ["a", "s", "d", "j", "k", "l"]

while 1
For $i = 0 to 5
	If  _PixelGetColor($sCoord[$i] & "," & $sColor[$i]) = true Then
		Send("{" & $sButton[$i] & " DOWN}")
	Else
		Send("{" & $sButton[$i] & " Up}")
	endif
	 ConsoleWrite($i & ", " & $sCoord[$i] & "," & $sColor[$i] & @LF)
	next
wend


Func _PixelGetColor($sXYCol)
	$test = $sCoord[1] & "," & $sColor[1]
		$sResult = StringSplit($sXYCol, ",")
		If PixelGetColor($sResult[1], $sResult[2]) = $sResult[3] Then
			return True
		Else
			return false
		endif
endfunc
 
Автор
V

vadiqwe

Новичок
Сообщения
15
Репутация
0
Можно как то зедать что бы зажимал кнопку поменьше времени, а
то зажимает долго
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Можно как то зедать что бы зажимал кнопку поменьше времени, а
то зажимает долго
Это подойдет ?:
Код:
Opt('SendKeyDownDelay', 0) ;Изменяет продолжительность нажатого состояния клавиши, перед тем как отпустить (в миллисекундах).
;...
 
Автор
V

vadiqwe

Новичок
Сообщения
15
Репутация
0
Всё отлично только если 2 или 3 кнопки зажать надо он тупит и не жмёт ничего

Код:
While 1
    Opt('SendKeyDownDelay', 200)
    If PixelGetColor(570, 715) = '0x00FF00' Then Send('a') ;зелёный
    If PixelGetColor(621, 715) = '0xC1272D' Then Send('s') ;красный
    If PixelGetColor(672, 715) = '0xD9E021' Then Send('d');жёлтый
    If PixelGetColor(724, 715) = '0x0070BC' Then Send('j');синий
    If PixelGetColor(777, 715) = '0xF7931E' Then Send('k');оранжевый
    If PixelGetColor(830, 715) = '0x93278F' Then Send('l');фиолетовый
WEnd
 
Верх