Есть флеш аналог игры Guitar Hero. http://vk.com/app2349560
Игровой процесс
Появилась идея автоматизировать это дело. При изменении цвета определенных точек, отправлять в игру нажатия соответствующей кнопки. Казалось бы все просто (PixelGetColor, Send), но все упирается в быстродействие, т.к. чем чаще опрашиваем цвет - тем больше точность.
В результате за час появился кривой скрипт, который все же проходил простую песню на легкой сложности на 99% точности.
Задачи:
1. Увеличить точность определения ноты.
2. Увеличить быстродействие для распознавание цвета.
3. Сделать подобие многопоточности для 5 струн.
4. (в будущем) Распознавание типа ноты.
Есть какие-нибудь идеи, господа?
P.S. Заранее простите за абсолютные координаты, делалось ночью на колене. Предварительная альфа-версия.
Игровой процесс
Появилась идея автоматизировать это дело. При изменении цвета определенных точек, отправлять в игру нажатия соответствующей кнопки. Казалось бы все просто (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. Заранее простите за абсолютные координаты, делалось ночью на колене. Предварительная альфа-версия.