键盘键入字符,不敲回车直接读取

今天看到一篇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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值