gpt4 book ai didi

c++ - MS DOS 的 GetAsyncKeyState()

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:41 24 4
gpt4 key购买 nike

我为 Windows 制作了一个使用 GetAsyncKeyState() 的小游戏。现在我想为 MS DOS 编译游戏,但我找不到任何替代此功能的方法。 getch() 和 kbhit() 处理击键的速度太慢。主要目标是以光速或至少类似于 GetAsyncKeyState() 的速度处理击键。提前致谢。

最佳答案

在 Borland c++ MSDOS 上处理键盘的示例代码使用 conio.hkbhit()getch()。这应该编译在 MSDOS Borland c++ 中就好了。

#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <dos.h>

#define TRUE 1
#define FALSE (!TRUE)
#define TEXTSCREEN 0xB800


#define esc 27
#define tab 9
#define up 72
#define down 80
#define left 75
#define right 77
#define home 71
#define cend 79
#define pgup 73
#define pgdn 81
#define ins 82
#define del 83
#define plus 43
#define subt 45
#define mult 42
#define devi 47
#define spc 32
#define f1 59
#define f2 60
#define f3 61
#define f4 62
#define f5 63
#define f6 64
#define f7 65
#define f8 66
#define f9 67
#define f10 68
#define ap 53
#define bksp 8
#define enter 13
#define crum 245


void key2(void);

int main(void)
{

ch=0;
while(ch!=esc)
{

key2();

}

return 0;
}


void key2(void)
{
if (kbhit())
{
ch=getch();

if (ch==f1)
{

}
if (ch==f2)
{

}
if (ch==f3)
{

}
if (ch==f4)
{


}
if (ch==f5)
{


}
if (ch==f6)
{


}
if (ch==f7)
{


}
if (ch==f8)
{


}
if (ch==f9)
{

}
if (ch==f10)
{


}


if (ch==tab)
{

}

if (ch==ins)
{

}

if (ch==del)
{
}

if (ch==bksp)
{



}

if (ch==enter)
{


}

if (ch==spc)
{

}
if (ch==49)
{



}
if (ch==50)
{



}

if (ch==up)
{


}

if (ch==down)
{


}
if (ch==home)
{



}
if (ch==cend)
{



}
if (ch==pgup)
{



}
if (ch==pgdn)
{



}
}
}

关于c++ - MS DOS 的 GetAsyncKeyState(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23346105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com