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

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

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

> Мышка+Графика
Анна
сообщение 14.05.2006 12:25
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Анна
сообщение 14.05.2006 15:54
Сообщение #2


Бывалая
***

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

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


smile.gif Понятно ..
Просто я первый раз встречаю тип pointtype

Как я поняла, (X:250; Y:244) {1 положение},
(X:280; Y:244), {2 положение} и т.п., а далее уже идёт выбор из этой записи, какое положение займет "глаз" ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 20.07.2025 10:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"