Программирование игр для Windows. Советы профессионала


Мышь - часть 3


К примеру, если мышь находится в левом верхнем углу экрана, функция возвращает (0,0);

§          Драйвер мыши может возвращать относительные координаты. При этом возвращается разница координат от предыдущей посылки. Например, если мышь подвинулась на 20 микки по оси Х и на 10 по оси Y, то эти значения и будут возвращены. Для чтения в относительном режиме используйте константу MOUSE_MOTION_REL.

Еще несколько слов о мыши. Вы можете менять ее чувствительность к передвижению, используя константу MOUSE_SET_SENSITIVITY. Для этого подберите для переменных Х и Y значение от 1 до 100 и вызовите Squeeze_Mouse. Чувствительность мыши определяется как отношение пиксельного перемещения курсора мыши к одному микки.

Листинг 3.8 содержит демонстрационную программу, которая показывает использование мыши. Эта программа позволяет рисовать на экране, нажимая на левую кнопку мыши и менять цвет, используя правую кнопку.

Листинг 3.8. Работа с мышью (MOUSE.C).

// ВКЛЮЧАЕМЫЕ ФАЙЛЫ ///////////////////////////////////////

#include <dos.h>

#include <bios.h>

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <graph.h>

// ОПРЕДЕЛЕНИЯ ///////////////////////////////////////////

// вызовы функций мыши

#define MOUSE_INT             0х33 // Номер прерывания мыши

#define MOUSE_RESET           0х00 // Инициализация драйвера

#define MOUSE_SHOW            0х01 // Показать курсор мыши

#define MOUSE_HIDE            0х02 // Спрятать курсор мыши

#define MOUSE_BUTT_POS        0х03 // Получение полного статуса

#define MOUSE_SET_SENSITIVITY Ox1A // Установка

чувствительности

#define MOUSE_MOTION_REL      ОхОВ // Получить значение счетчика

     // микки

#define MOUSE_LEFT_BUTTON     0х01 // левая

кнопка

#define MOUSE_RIGHT_BUTTON    0х02 // правая

кнопка

#define MOUSE_CENTER_BUTTON   0х04 // средняя

кнопка

// ФУНКЦИИ ////////////////////////////////////////////////

int Squeeze_Mouse(int command, int *x, int *y,int *buttons)




Начало  Назад  Вперед



Книжный магазин