本文主要是介绍键盘键入字符,不敲回车直接读取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天看到一篇C编游戏,便尝试着按照里面的方法开发属于自己的小游戏。
其中,困难重重。分别描述,并列举解决方案如下
1.键盘按键方向键的识别
键盘方向键为组合键,识别起来较困难,投机取巧,改换为wsad四个字符,来控制上下左右四个方向。
2.getchar()函数,键入字符需要再键入一个回车才能识别刚刚键入的字符,游戏不能按一下键再加上回车,这样麻烦,增加代码以便消除回车,可以达到不加回车直接读取键入字符,并响应以相应操作。
(1)、在windows下可以增加一个库函数conio.h ,并调用getch(),getch()即可
(2)、在linux下,可以改变终端输入的方式来改变回车的键入。
具体代码如下:
struct termios stored_settings;
struct termios new_settings;
tcgetattr (0, &stored_settings);
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON);
new_settings.c_cc[VTIME] = 0;
new_settings.c_cc[VMIN] = 1;
tcsetattr (0, TCSANOW, &new_settings);
在程序调试结束后:改回
tcsetattr (0, TCSANOW, &stored_settings);
这篇关于键盘键入字符,不敲回车直接读取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!