IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   TASM HELP (mouse) (https://www.imho.ws/showthread.php?t=45425)

7en 07.12.2003 20:02

TASM HELP (mouse)
 
Подскажите пожалуйста, как работать с кликом мышки, мне надо сделать не большую игру (морской бой) и в ней я должен выбирать кораблик ( первый клик) (кораблик ето 10 колонок заполненные цветом) и ставить его на поле (второй клик) для инициализации клика мышки я сделал:

MOV АХ,0003h
int 33h

П.С. Я работаю в текстовом режиме (80 колонок х 25 линий)

Заранее cпасибо

CEO 10.12.2003 14:34

Вложений: 1
Доступ к функциям драйвера мыши реализуется
с помощью 33h-го прерывания ДОС.
Вот Функции этого прерывания:
00h -- сбросить драйвер
01h -- показать указатель мыши
02h -- убрать указатель мыши
03h -- получить текушие координаты и сосотояние кнопок
04h -- переместить указатель в новое положение
05h -- получить информацию о нажатии кнопки
06h -- получить информацию об отпускании кнопки
07h -- установить область перемещения указателя по горизонтали
08h -- установить область перемещения указателя по вертикали
09h -- задать форму указателя для графического режима
0Ah -- задать форму указателя для текстового режима
0Bh -- получить счетчик шагов перемещения
0Ch -- задать условия вызова программы пользователя
0Dh -- включить эмуляцию светового пера
0Eh -- выключить эмуляцию светового пера
0Fh -- установить отношение числа шагов на единицу
виртуального экрана
13h -- установить порог удвоения скорости смещения указателя мыши
14h -- заменить процедуру пользователя
15h -- получить размер буфера, необходимого для сохранения
состояния драйвера
16h -- сохранить текущее состояние драйвера
17h -- восстановить состояние драйвера
1Dh -- задать видеостраницу для отображения указателя
1Eh -- получить номер видеостраницы, в которой отображается указатель.
Как это использовать?
Вот примеры:
-----------
1.показать указатель мыши:
-----------
mov ah,01h
int 33h
-----------
2.получить текущие координаты указателя мыши и состояние клавиш:
-----------
mov ah,03h
int 33h
;если bx:бит 0 - левая клавиша(1-нажата, 2-отпущена),
;бит 1 - правая кнопка, бит 2 - средняя кнопка.
;cx - горизонтальная координата
;dx - вертикальная координата
-----------
3.Переместить указатель в заданную точку экрана:
-----------
mov ah,04h
int 33h
;CX - x-координата
;DX - y-координата
-----------
4.Получить информацию о нажатии кнопки мыши:
-----------
mov ah,05h
;в BX можно поместить идентификатор кнопки,
;которую нужно проверить
int 33h
;AX - текущее состояние кнопок
;BX - количество нажатий указанной кнопки
;CX,DX - координаты, соответствующие нажатию кнопки.

-----------
5.Форма указателя в текстовом режиме:
-----------
mov ah,0ah
;BX - поместить флаг указателя
;(0-программное управление формой, 1-аппаратное управление)
;CX - маска для экрана или верхняя строка развертки
;DX - маска для экрана или нижняя строка развертки
int 33h

Так же можешь скачать доку по работе с мышью и несколько примеров на асме (см файл mouse.zip).

7en 10.12.2003 16:56

Спасибо за подробное описание. Ето мне понадобится.:yees:


Часовой пояс GMT +4, время: 18:01.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.