Эх....Давненько я тут ничего не писал... Решил вот заделать бота на
Delphi для браузерной mmorpg...Какой - пока не скажу... Написана она на
Flash, поэтому пришлось разбираться в анализе изображений, а точнее как
всё это реализуется в Делфи. Ну и под это дело - статью решил
забацать...Вот так вот...
Как написать бота для браузерной игры на Delphi.
Шаг 1:
Какая это mmorpg: Flash или нет. Для Flash подойдет только медленный
способ анализа изображения с экрана и поиск соответствий. Для остальных
браузерок не составит труда работать напрямую с Post/Get запросами, это
намного быстрее, правда сложнее для понимания (их мы рассмотрим отдельно
в другой статье). В моем случае это браузерная игра на Flash, поэтому пришлось лезть и смотреть, как Delphi работает с изображениями. Требовалось решить 2 проблемы:
1. Чтение картинки с экрана.
function PrintScreen (): TImage ; var ScreenDC: HDC ; Canvas: TCanvas ; Begin
PrintScreen := TImage.Create(nil) ;
ScreenDC := GetDC(0) ; Canvas := TCanvas.Create() ; Canvas.Handle := ScreenDC ;
PrintScreen .Width := Screen.Width ; PrintScreen .Height := Screen.Height ; PrintScreen.Canvas.CopyRect(Rect(0, 0,
PrintScreen .Width , PrintScreen .Height ), Canvas, Rect(0, 0, Screen.Width , Screen.Height )) ;
ReleaseDC(0,ScreenDC) ; end ;
Теперь разберемся. Тут я ввел сразу несколько новых типов переменных: HDC, TCanvas, TImage. Для чего они нужны: 1. TCanvas. Основной тип, с которым мы будем работать. Тут Вам и "полотно" для рисования и куча методов по рисованию на нем. Этот тип полезен нам сразу по нескольким позициям: - . Pixels[X, Y: Integer]: TColor; возвращает цвет пикселя с координатами (X; Y). Один из самых нужных в этой задаче инструментов. -
|