Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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

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

Последний раз редактировалось Glob, 12.11.2010 в 13:29.
Ответить с цитированием
  #2  
Старый 12.11.2010, 12:05
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

попробуй DC := GetDC( 0 ); впихнуть в таймер
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #3  
Старый 12.11.2010, 13:20
Glob Glob вне форума
Прохожий
 
Регистрация: 12.11.2010
Сообщения: 22
Репутация: 10
По умолчанию

А что конкретно делает эта функция?
DC := GetDC( 0 );

в гугле нашел только ее применение, а внятного объяснения нет.
Ответить с цитированием
  #4  
Старый 12.11.2010, 13:30
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

плохо искал
Цитата:
Функция GetDC извлекает дескриптор дисплейного контекста устройства (DC) для рабочей области заданного окна или для всего экрана. Вы можете использовать возвращенный дескриптор в последующих функциях GDI, чтобы рисовать в контексте устройства.
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #5  
Старый 12.11.2010, 13:36
Glob Glob вне форума
Прохожий
 
Регистрация: 12.11.2010
Сообщения: 22
Репутация: 10
По умолчанию

а по-русски это звучит как "определяет какое окно считать в качестве рабочей области" ?
Ответить с цитированием
  #6  
Старый 12.11.2010, 16:06
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

т.е. ты получаешь окно и работаешь с ним, т.е. можешь рисовать на нем и посылать разные мессаги
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter