⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mouse.c

📁 坦克大战,实现基本的游戏功能
💻 C
字号:
/*
    mouse.c

    鼠标操作相关的函数实现
    最后修改: 2007-06-19

*/

#include "mouse.h"
#include <dos.h>

char InstallMouse(int nMinX, int nMinY, int nMaxX, int nMaxY)
{
    union REGS r;
    int retcode;
    r.x.ax=0;
    int86(0x33, &r, &r);
    retcode=r.x.ax;
    if(retcode==0) /* 鼠标初始化失败 */
    {
        return 0;
    }
    
    r.x.ax=7;
    r.x.cx=nMinX;
    r.x.dx=nMaxX;
    int86(0x33, &r, &r); /* 设置水平范围 */
    r.x.ax=8;
    r.x.cx=nMinY;
    r.x.dx=nMaxY;
    int86(0x33, &r, &r); /* 设置垂直范围 */

    return retcode;
}

char GetButtonState(char byButton)  /* 取鼠标按键状态 */
{
    unsigned char res;
    union REGS r;

    r.x.ax=3;
    int86(0x33, &r, &r);

    res=r.x.bx;
    if(byButton==RBUTTON)
    {
        res=(res>>1);
    }
    res&=0x01;

    switch(res)
    {
    case 0: return RELEASED;
    case 1: return PRESSED;
    }
}

void GetMousePosition(int *pnX, int *pnY)  /* 取鼠标指针位置 */
{
    union REGS r;

    r.x.ax=3;
    int86(0x33, &r, &r);
    *pnX=r.x.cx;
    *pnY=r.x.dx;
}

void SetMousePosition(int nX, int nY)  /* 重设鼠标位置 */
{
    union REGS r;

    r.x.ax=4;
    r.x.cx=nX;
    r.x.dx=nY;
    int86(0x33, &r, &r);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -