IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Мышка+Графика
сообщение
Сообщение #1


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


Собственно задача: "Глаза" должны следить за курсором мыши smile.gif. Вроде бы все ок, следят smile.gif, но происходит мигание .. как это можно устранить?

uses Graph, Crt;

var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;

button,x,y,z, mouse_keys: word;
mouse_X, mouse_Y:word;


function mouse_init: boolean;
var
m:boolean;
begin asm
mov ax,0
int 33h
mov @Result, al
end;
end;

procedure mouse_on;
begin asm
mov ax,1
int 33h
end;
end;

procedure mouse_off;
begin asm
mov ax,2
int 33h
end;
end;

procedure mouse_get(var m_k:word; var m_x:word; var m_y:word);
begin asm
mov ax,3
int 33h

les di, m_k
mov es:[di], bx
les di, m_x
mov es:[di], cx
les di, m_y
mov es:[di], dx
end;
end;

procedure first;
begin
setcolor (green);
circle (265,225,35);
setcolor (red);
if (x<265) and (y>225) then begin cleardevice ; circle (250,244,8); {lev. niz} end;
if (x>265) and (y>225) then begin cleardevice ; circle (280,244,8); {prav. niz} end;
if (x<265) and (y<225) then begin cleardevice ;circle (250,204,8); {lev. verh} end;
if (x>265) and (y<225) then begin cleardevice ;circle (280,204,8); {prav. verh} end;

end;

procedure second;
begin
setcolor (green);
circle (335,225,35);
setcolor (red);
if (x<335) and (y>225) then begin cleardevice ; circle (320,244,8); end;
if (x>335) and (y>225) then begin cleardevice ;circle (350,244,8); end;
if (x<335) and (y<225) then begin cleardevice ;circle (320,204,8)end;
if (x>335) and (y<225) then begin cleardevice ;circle (350,204,8); end;

end;


begin
grDriver := VGA;
grMode := VGAhi;
InitGraph(grDriver, grMode,' ');
ErrCode := GraphResult;
if ErrCode = grOk then


begin

setcolor(green);
SetLineStyle(10, 10 ,10);

mouse_on;
setcolor(red);
SetLineStyle(10, 10 ,10);



repeat

mouse_on;
mouse_get(button, x,y);
first;
second;

until Keypressed;
CloseGraph;
end
else
Writeln('Error:', GraphErrorMsg(ErrCode));
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 12:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name