QuickBasicNews

 
 

Ушастый в QB

 
 
     В этой статье я расскажу, как использовать мышь в QB с использованием стандартной библиотеки “qb.bi”. Для этого мы будем использовать функцию INTERRUPT и структуру данных RegType, которая позволяет нам использовать регистр компьютера. Interrupt (что-то наподобие кода) крысы - 33h, в QB записывается как &H33. Вы можете контролировать мышь используя регистр AX. Если регистр AX равен 1, то мышь включается: AX = 2, крыса выключаеся. А если AX = 3, то мы получаем сведения о крысе (сколько у неё кнопок, какая из них сейчас нажата и позиция крысы).
 
 

AX =

Что происходит?

1

Мышь включена. Вы можете видеть её на экране.

2

Мышь выключена. Вы больше не можете видеть её на экране.

3

Статус мыши разделён на четыре группы AX, BX, CX, DX      

AX = количество кнопок                                                                              

BX = нажатая кнопка (1 - левая, 2 - правая)                                             

CX = позиция на оси X на SCREEN*8                                                         

DX = позиция на оси Y на SCREEN*8

   
 

 А теперь пишем саму прогу:                      

DEFINT A-Z                                                                              

$INCLUDE: 'qb.bi'  (включаем библиотеку)                             

CLS                                                                                           

DIM regs AS RegType (это разрешит нам использовать регистр) 

regs.ax = 1  (включаем крысу)                                         

INTERRUPT &H33, regs, regs (задаём INTERRUPT для мыши)   

DO (начали действие)                                                                   

regs.ax = 3  (теперь мы можем получать сведения о мыши)  

INTERRUPT &H33, regs, regs (задаём INTERRUPT)                     (теперь мы выводим на экран статус ушастика)                   (обратите внимание CX и DX мы делим на 8)                             

LOCATE 1, 1                                                                             

PRINT regs.ax, regs.bx, (regs.cx / 8) + 1, (regs.dx / 8) + 1               (заканчиваем действие при нажатии любой клавиши)        

LOOP WHILE INKEY$ = ""                                                    

regs.ax = 2  (выключаем крысу)                                                    

INTERRUPT &H33, regs, regs   (задаём INTERRUPT)              

END

 
 
     Вот и всё! Я вам рассказал самый короткий способ использования мыши в QB (без использования специальных библиотек). А теперь в перёд за работу! Ну что напишим графический редактор или арканоид с использованием ушастого!

       АВТОР: Mr.Nice Guy

Hosted by uCoz