Что нового

[Flash Guitar Hero] Скоростное распознавание цвета точек

Moonsin

Новичок
Сообщения
17
Репутация
2
Есть флеш аналог игры Guitar Hero. http://vk.com/app2349560
Игровой процесс

Появилась идея автоматизировать это дело. При изменении цвета определенных точек, отправлять в игру нажатия соответствующей кнопки. Казалось бы все просто (PixelGetColor, Send), но все упирается в быстродействие, т.к. чем чаще опрашиваем цвет - тем больше точность.
В результате за час появился кривой скрипт, который все же проходил простую песню на легкой сложности на 99% точности.
Монструозный код:
Код:
#Include <APIConstants.au3>
#include <_PixelGetColor.au3>

Sleep(3000)
Opt("SendKeyDownDelay", 100)
ProcessSetPriority('plugin-container.exe',4)
ProcessSetPriority('autoit3.exe',4)
$hDll = DllOpen("gdi32.dll")
$vDC = _PixelGetColor_CreateDC($hDll)
$Tim = TimerInit()
Beep()
While  1
$vRegion = _PixelGetColor_CaptureRegion($vDC, 550, 647, 720, 647, 0, $hDll)
_X()
_Z()
_C()
WEnd
_PixelGetColor_ReleaseRegion($vRegion)
_PixelGetColor_ReleaseDC($vDC,$hDll)
DllClose($hDll)

Beep()
Func _X ()
   $k = _PixelGetColor_GetPixel($vDC, 97, 0, $hDll)
Switch $k
   Case '131313'
   Case '181818'
   Case '666666'
   Case '171718'
   Case '191818'
	Case '191717'
   Case '999999'
   Case '000000'
	Case '171717'
	Case Else
	  Send('x')
	  Sleep(100)
EndSwitch
EndFunc

Func _Z ()
   $k = _PixelGetColor_GetPixel($vDC, 24, 0, $hDll)
Switch $k
   Case '131313'
   Case '181818'
   Case '666666'
   Case '141414'
	Case '141413'
   Case '999999'
   Case '000000'
   Case Else
	  Send('z')
	  Sleep(100)
EndSwitch
EndFunc

Func _C ()
   $k = _PixelGetColor_GetPixel($vDC, 166, 0, $hDll)
Switch $k
   Case '131313'
   Case '181818'
   Case '666666'
	Case '171717'
	Case '999999'
	Case '191919'
	Case '191918'
   Case '000000'
   Case Else
	  Send('c')
	  Sleep(100)
EndSwitch
EndFunc

Задачи:
1. Увеличить точность определения ноты.
2. Увеличить быстродействие для распознавание цвета.
3. Сделать подобие многопоточности для 5 струн.
4. (в будущем) Распознавание типа ноты.

Есть какие-нибудь идеи, господа?

P.S. Заранее простите за абсолютные координаты, делалось ночью на колене. Предварительная альфа-версия.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для Guitar Hero. Скоростное распознавание цвета точек

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Бот для Guitar Hero. Скоростное распознавание цвета точек" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Верх