<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Определение координат игрока путем анализа изображения.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=13365</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=13365&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Определение координат игрока путем анализа изображения.».]]></description>
		<lastBuildDate>Thu, 15 Mar 2018 18:11:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Определение координат игрока путем анализа изображения.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=124075#p124075</link>
			<description><![CDATA[<p>Что то новое решилось? Мне было бы интересно это использовать</p>]]></description>
			<author><![CDATA[null@example.com (Vopliym)]]></author>
			<pubDate>Thu, 15 Mar 2018 18:11:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=124075#p124075</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Определение координат игрока путем анализа изображения.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=123013#p123013</link>
			<description><![CDATA[<p>Все возможно, даже можно создать(собрать) изображение всей карты и искать в нем кусочек миникарты, так вы сразу получите точные абсолютные координаты.<br />Ключевой вопрос будет скорость выполнения.<br />• Запись и чтение из файла - избавиться в первую очередь, вроде ImageSearch может принимать bitmap из памяти (loaded from memory).<br />• ImageSearch не самый быстрый, есть функции альтернативы. Из интересных попробуйте FindText(), он обрабатывает изображение в ч/б паттерн, для вас это может быть плюс, а может минус.<br />Возможен другой подход: анализировать небольшой участок попиксельно, скажем 3х3 пикселя можно до ≈1000 раз/сек.<br /></p><div class="codebox"><pre><code>Window_CreateCapture(hwnd) {
	Return DllCall(&quot;user32.dll\GetDCEx&quot;, &quot;UInt&quot;, hwnd, &quot;UInt&quot;, 0, &quot;UInt&quot;, 1|2|8|16)
}
GetPixel(hDC, x, y) {
	DllCall(&quot;gdi32.dll\GetPixel&quot;, &quot;UInt&quot;, hDC, &quot;Int&quot;, x, &quot;Int&quot;, y, &quot;UInt&quot;)
}
Window_DeleteCapture(hwnd, hDC) {
	DllCall(&quot;user32.dll\ReleaseDC&quot;, &quot;UInt&quot;, hwnd, &quot;UInt&quot;, hDC)
}
Hex := Format(&quot;0x{:x}&quot;, GetPixel(hDC, x, y))</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Fri, 12 Jan 2018 12:56:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=123013#p123013</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Определение координат игрока путем анализа изображения.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=123007#p123007</link>
			<description><![CDATA[<p>Добрый день! Решаю задачу по определению местоположения персонажа в игре путем анализа изображения миникарты. Прошу помощи сообщества в определении и разработки надежного и быстрого алгоритма, работающего в режиме реального времени.</p><p>Я лишь частично приблизился к решению этой задачи путем сохранения в ТЕКСТОВЫЙ файл цветов последовательности пикселей на миникарте, т.е. создавал текстовую карту цветов. Далее я пытался в игре считать цвет строки пикселей и искал в файле номер строки и положение курсора при успешном поиске по файлу.&nbsp; Здесь я натянулся на ограничение в скорости передвижения, ведь когда игрок двигается слишком быстро при сканировании цвета строки пикселей, часть строки смещается и поиск по файлу результатов не дает .</p><br /><p>На данный момент у меня есть несколько вариантов алгоритма, которые должны помочь в решении задачи:<br />А) идеальный вариант<br />1. отснять всю миникарту области, по которой перемещается игрок<br />2. получить часть изображения миникарты в игре online<br />3. найти кусочек миникарты п.2 на изображении п.1 и определить координаты</p><p>Б)приемлемый вариант<br />1. начинать движение в определенной точке игрового мира<br />2. делать снимок участка миникары<br />3. делать второй снимок после небольшой задержки и определять смещение <br />4. изменять координаты по смещению</p><p>Главной трудностью для меня стала работа функции ImageSearch, ведь она ищет изображение из файла на экране, а мне надо наоборот,искать изображение с экрана в файле. Или я неправильно рассуждаю ?</p>]]></description>
			<author><![CDATA[null@example.com (evilhero)]]></author>
			<pubDate>Fri, 12 Jan 2018 09:31:19 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=123007#p123007</guid>
		</item>
	</channel>
</rss>
