Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Fugger on October 17, 2017, 11:19:16 PM
-
Доброго вечера. Столкнулся с проблемой, что не получается сделать так, чтобы пиксели добавлялись в массив реверсивно. Возможно вам не очень понятно, о чём я. Скрипт должен заносить каждые 10 пикселей в массив, находящиеся между координатами которые я определю. Сделать это у меня вышло. Я нажимаю в одном месте z, в другом - x, и координаты заносятся, но мне нужно сделать, чтобы координаты заносились в обратном порядке когда x меньше z. Я пытался заменить + на -, но программа переставала работать.
IF(iskeydown(#z)=1)
$x1 = $_xmouse
$y1 = $_ymouse
elz:
waitms(10)
IF(iskeydown(#x)=1)
$x2 = $_xmouse
$y2 = $y1
if ($x2>$x1)
$count=$x2-$x1
else
$count=$x1-$x2
end_if
$count=$count/10
$count=round($count)
for($a=1,$a<$count+1)
arrpush($aCor,$x1+$a*10)
arrpush($aCor,$y1)
end_cyc
else
goto(elz)
END_if
END_IF
И ещё, если сможете, помогите придумать как сделать чтобы каждые 10 пикселей квадратной области заносились в массив по очереди, буду благодарен.
-
IF(ISKEYDOWN(#Z)=1)
WHILE(ISKEYDOWN(#Z)=1)
WAITMS(5)
END_CYC
$x1 = $_xmouse
$y1 = $_ymouse
$check = 0
WHILE((ISKEYDOWN(#Z)=0)&($check = 0))
IF(ISKEYDOWN(#X)=1)
WHILE(ISKEYDOWN(#X)=1)
WAITMS(5)
END_CYC
$x2 = $_xmouse
$check = 1
IF($x1 < $x2)
FOR($i=$x1,$i<$x2,10)
arrpush($aCor,$i)
arrpush($aCor,$y1)
END_CYC
ELSE
FOR($i=$x1,$i>$x2,-10)
arrpush($aCor,$i)
arrpush($aCor,$y1)
END_CYC
END_IF
//=== Вывод массива в лог для тестирования ====
LOGCLEAR
FOR($a=0,$a<ARRSIZE($aCor))
LOGWRITE ($aCor[$a])
END_CYC
HALT
//=============================================
ELSE
WAITMS(20)
END_IF
END_CYC
ELSE
WAITMS(20)
END_IF
-
может есть смысл сканировать указанную область по диагонали или по сетке, так-же как х наращивая у ?
Да, была такая мысль, спасибо.
Но мне нужно не удалять координаты из массива, а проходить по ним циклом, так что не вариант
-
IF(ISKEYDOWN(#Z)=1)
WHILE(ISKEYDOWN(#Z)=1)
WAITMS(5)
END_CYC
$x1 = $_xmouse
$y1 = $_ymouse
$check = 0
WHILE((ISKEYDOWN(#Z)=0)&($check = 0))
IF(ISKEYDOWN(#X)=1)
WHILE(ISKEYDOWN(#X)=1)
WAITMS(5)
END_CYC
$x2 = $_xmouse
$check = 1
IF($x1 < $x2)
FOR($i=$x1,$i<$x2,10)
arrpush($aCor,$i)
arrpush($aCor,$y1)
END_CYC
ELSE
FOR($i=$x1,$i>$x2,-10)
arrpush($aCor,$i)
arrpush($aCor,$y1)
END_CYC
END_IF
//=== Вывод массива в лог для тестирования ====
LOGCLEAR
FOR($a=0,$a<ARRSIZE($aCor))
LOGWRITE ($aCor[$a])
END_CYC
HALT
//=============================================
ELSE
WAITMS(20)
END_IF
END_CYC
ELSE
WAITMS(20)
END_IF
большущее спасибо