Что нового

[Математика] Нужно сделать вычитание=)

pbroger

Новичок
Сообщения
7
Репутация
0
Приведу пример:
В игре есть прицел(как во всех обычных играх), и курсор ходит с такой же скоростью как прицел, но не совпадают они=)
В общем захотел я сделать автонаведение, вроде был курсор наводится, НО прицел то нет(то-есть наводится, но только не туда куда надо, хотя при нажатии Esc, курсор ведёт туда куда надо, тоесть цвета не путает...), т. к. прицел всегда по середине, а курсор и прицел не совпадают... Решил я сделать так:
Найти координаты прицела(x1,y1), найти координаты цвета(x2,y2), и вычесть например x2-x1=*, y2-y1=*. И потом сделать Func MouseMovexy(). Но не нашёл ф-ции вычитания, кто мне поможет?
Пример кода.
Код:
$coord = PixelSearch ($winpos[0]+$side,$winpos[1]+$side, $winpos[2]-$side, $winpos[3]-$side, 0x00FF00)
    $coord = PixelSearch ($winpos[0]+$side,$winpos[1]+$side, $winpos[2]-$side, $winpos[3]-$side, 0x232E49)
    If Not @error then
		; сюда вставить вычитание $coord[2] , $coord[0] и $coord[3] , $coord[1]
	Func MouseMovexy()
Return MouseMove(MouseGetPos(0)+0, MouseGetPos(1)+0, 0)
EndFunc
			EndIf
 

sss

Продвинутый
Сообщения
332
Репутация
96
Насколько я знаю AutoIt, функции вычитания нет, действие выполняется просто присвоением переменной. В вашем случае:
Код:
$var1=$coord[2]-$coord[0]
$var2=$coord[3]-$coord[1]

И потом использовать эти переменные. Вроде так, по другому не знаю.
 
Автор
P

pbroger

Новичок
Сообщения
7
Репутация
0
Нет, всё равно не помогает=((
Код:
$coord = []
- в этом ошибка... Он не может сообразить $coord - какое число... Что же делать...
 

sss

Продвинутый
Сообщения
332
Репутация
96
1)Немного не понял, это что за код такой? Для чего? В твоем примере вроде $coord - это массив, значит его надо указывать как $coord[i] где i - номер.
2)И еще, что такое "= []"?
3)И еще, ты спросил про вычитание - я дал пример. Как его применить - ты не спрашивал.
4)И еще, такой строчки не было в твоем коде, а мысли я не читаю. Поподробнее пожалста.
А еще лучше, скажи название игры и дай полный код.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Код:
$coord = PixelSearch ($winpos[0]+$side,$winpos[1]+$side, $winpos[2]-$side, $winpos[3]-$side, 0x00FF00)
В этом примере $Coord это переменная, которая превращается в массив только если PixelSearch успешен. И далее в нее еще раз используется PixelSearch. Что в случае успеха прошлой команды стирает полученные координаты и заменяет их новыми данными из последнего PixelSearch. В этом коде нечего и из нечего вычитать, умножать или производить какие-либо другие математические действия.
 
Верх