当前位置: 首页 > news >正文

_kbhit() and getch() 在小游戏中用不了。因为控制台函数,仅在控制台程序中可用

太长不看版:

_kbhit() and getch() 包含在conio.h中。

conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

_kbhit() and getch() 为控制台函数,仅在控制台程序中可用,在窗口程序中不能用。

前因后果:

参考b站视频,练习用C++ EasyX 写小游戏时,发现:

控制台程序无法获取键盘消息。因为很多视频都是早几年做的,从 Windows 诞生之日起,其默认终端一直是 Windows 控制台主机 conhost.exe。但是目前Windows 11 的所有命令行应用程序都将在 Windows Terminal 中自动打开。

这就使得编写控制台程序时,会出现两个窗口,一个是控制台,一个是EasyX绘制的窗口。当使用_kbhit()和getch()获取键盘消息的时候,必须是控制台获得焦点的时候,才能获得键盘消息,在EasyX绘制的窗口中无法直接获得消息。

参考了Introduction to C++ Game Development | TONY'S STUDIO(EasyX新手宝藏)

把程序改为窗口程序,也因此所有控制台函数不再有效。

http://www.lryc.cn/news/148359.html

相关文章:

  • dayjs格式转换成日期
  • mfc140u.dll丢失如何修复?解析mfc140u.dll是什么文件跟修复方法分享
  • STM32--SPI通信与W25Q64(2)
  • 微信小程序 校园周边美食商城分享系统
  • K8S - 架构、常用K8S命令、yaml资源清单部署、Ingress、故障排查、存储卷
  • micro benchmark 使用经验
  • nodejs发布静态https服务器
  • 国产系统下开发QT程序总结
  • 【Redis】redis入门+java操作redis
  • 无涯教程-Android - Spinner函数
  • 国标GB28181视频平台EasyGBS国标平台智能边缘计算网关关于小区电动车进电梯的应用方案设计
  • supervisorctl(-jar)启动配置设置NACOS不同命名空间
  • 如何解决 Out Of Memory 的问题
  • 代码随想录训练营二刷第九天 | 字符串结束
  • javaee spring jdbcTemplate的使用
  • qt day
  • Configurable Weather Parameters
  • MySQL 8 数据清洗总结
  • 设计模式第九讲:常见重构技巧 - 去除不必要的!=
  • 自动化安装系统问题记录
  • centos7 docker安装记录
  • 全网实时热点热榜事件API
  • 淘宝API接口:提高电商运营效率与用户体验的利器(淘宝API接口使用指南)
  • 智己 LS6 用实力和你卷,最强 800v ?
  • 深入探索C语言自定义类型:打造你的编程世界
  • Opencv基于文字检测去图片水印
  • jdbc235
  • 库仑定律和场强
  • Android安卓实战项目(13)---记账APP详细记录每天的收入和支出并且分类统计【生活助手类APP】强烈推荐自己也在用!!!(源码在文末)
  • 嵌入式开发之syslog和rsyslog构建日志记录