Показать сообщение отдельно
  #1  
Старый 12.11.2010, 12:01
Glob Glob вне форума
Прохожий
 
Регистрация: 12.11.2010
Сообщения: 22
Репутация: 10
Вопрос Цвет пикселов на экране

решил начать изучать Delphi и в качестве стимула решил написать программу Бота для одной игрушки. Суть его работы такова: есть в игре полоса (типа жизней или маны) которая может заполнятся синим цветом , а может оставаться на одном месте. В зависимости от поведения этой полосы нужно выполнять разные действия.

вот костяк программы:
PHP код:
procedure TForm1.FormCreate(SenderTObject);
begin
 DC 
:= GetDC);
end;

procedure TForm1.Timer3Timer(SenderTObject);
var
 
prog:array[0..100of Integer;
 
Bl:array[0..100of Integer;
 
ColorValueCardinal;
 
PosX1,  iInteger;
begin 
 
for i:=0 to 45 do
begin
 posX1
:=PosX+i*5;
 
ColorValue := GetPixelDCPosX1PosY ); // Узнаю цвет пикселя в полученных координатах
 
Bl[i]:=GetBValue(ColorValue);
 if 
Bl[i]>120 then prog[i]:=else prog[i]:=0;
end;
for 
i:=0 to 45 do rezul:=rezul+prog[i];  //Определение позиции 
r[2]:=r[1];
r[1]:=rezul;
rezul:=0;
if (
r[2] < r[1]) and (r[2]<>0then  //Если полоса растет
 
begin
  
//выполняется действие
 
end;
if (
r[2] = r[1]) and (r[2]<>0then  //Если полоса стоит на месте
 
begin
   
//выполняется действие
 
end;
end;

procedure TForm1.FormClose(SenderTObject; var ActionTCloseAction);
begin
 ReleaseDC
0DC );
end

Все работает неплохо, но после минуты работы программа начинает воспринимать экран как черные пиксели. Есть ли способ побороть такое непотребство ?
Ответить с цитированием