首页 > 其他分享 >键盘交互(4.0)

键盘交互(4.0)

时间:2023-11-20 15:34:14浏览次数:32  
标签:4.0 打印 键盘 闪屏 操作 移动 交互 函数

本文学习于B站,记录,借鉴;

视频链接:键盘操作与物体移动_哔哩哔哩_bilibili

非easyx函数----键盘消息函数;注意头文件的引用conio.h

使用_getch();接受键盘读入值;后续在case里面放入要变化的逻辑,在这里就举一个wasd移动的例子://_getch();是一个阻塞函数;如果不输入就一直死卡那里。

 可以添加图形,并改变图形位置重新打印实现移动操作;这里画一个实心边框圆为例子:

 在控制台输入wasd就会实现移动,但是移动存在移动痕迹,因为我们的移动只是每次进行位置打印,如果不想看见上一次打印痕迹就要在循环开始增加一个cleardevice();函数每次进行清屏重新打印;但是清屏会把之前所有打印操作都清除,想保留之前的操作那么循环的开始就得在最开始打印进行循坏;

这种操作只是利用计算机运行速度快,产生的视觉效果,人们看不见被清除,再重新打印,只能看见重新打印后的画面,所以也会出现bug,插入图片,在图片上移动 清屏打印是会出现闪屏的情况的,要避免闪屏看接下来的操作;

 在绘图前使用BeginBatchDraw();函数

绘图后使用EndBatchDraw();函数

这样循坏图片就不会出现闪屏效果,消除闪屏效果;

原理:不使用函数是直接在图像窗口进行刷新打印,每一步都立即完成立即刷新,但是使用完函数后是在一个缓冲区内部进行图像的绘画,无论你进行什么操作,进行多少次操作都没关系,都不会体现在图像窗口中,只有缓冲区图像绘画完成再一次性打印到图像窗口,所以就避免了频繁闪屏的情况;

 画图前;

 画图后;建议将EndBatchDraw();函数换成FlushBatchDraw();对于处理闪屏效果更好一点;

 前面提到了_getch();函数是一个阻塞的,如果不想让它阻塞就在外层增加一个kbhit()函数判断;kbhit()函数用于监测键盘是否有按下,按下就进入判断内部。

上述的wasd移动还可以使用别的方式来监控键盘

 这样可以替代繁琐的一大串,并且这样写更加优一点,可以体现出斜着移动,但是用第一种switch不能体现出斜着移动的效果;建议这样写;

 

标签:4.0,打印,键盘,闪屏,操作,移动,交互,函数
From: https://www.cnblogs.com/qianzhu/p/17844068.html

相关文章

  • easyx的使用 鼠标交互(3.1)
    本文学习于B站,进行借鉴学习记录;视频链接:鼠标操作(新版)_哔哩哔哩_bilibili初始化调用文件头不再使用#include<graphics.h>,选择调用#include<easyx.h>,这存在版本里面封装函数的区别,grahpics里面的函数比较老;//新版鼠标结构体数据类型名为ExMessage,这是eastx头文件定义的结构体......
  • 汉文博士 0.6.2版更新:修复键盘快捷键,优化检索历史窗口
    新版本的汉文博士修复了前面几个版本检索结果框内键盘快捷键失效的问题。另外,点击工具栏上“后退”按钮旁的倒三角按钮将弹出检索历史窗口(之前是一个菜单)。窗口中列出的检索历史文字更大,而且支持使用鼠标滚轮上下滚动查看,比之前要方便一些。......
  • 【4.0】Python高级之匿名函数
    【一】匿名函数的定义在Python里有两类函数:第一类:用def关键词定义的正规函数第二类:用lambda关键词定义的匿名函数Python使用lambda关键词来创建匿名函数,而非def关键词lambdaargument_list:expressionlambda:定义匿名函数的关键词。argument_list:函......
  • easyx的使用,鼠标交互(3.0)
    本文从B站学习,借鉴;学习视频地址:鼠标操作(旧版)_哔哩哔哩_bilibili ......
  • mongoDB命令行交互
    命令行交互命令行交互一般是学习数据库的第一步,不过这些命令在后续用的比较少,了解即可。角色命令创建角色useadmindb.createUser({"user":"root","pwd":passwordPrompt(),"roles":[{role:"role",db:"<database>"}|"root"]})校验......
  • 【4.0】Python中级之字符编码
    【一】文本编辑器与Python解释器原理字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。【1】数据存放位置所有软件都是运行硬件之上的与运行软件相关的三大核心硬件为cpu、内存、硬盘软件运行前,软件的代码及其相关数据都......
  • Adobe Premiere Pro 2024 v24.0 Mac Intel芯片版下载
    软件介绍PremierePro2024是Adobe公司最新推出的一款视频编辑软件,它作为行业内最受欢迎的非线性编辑工具之一,为视频创作者提供了强大的剪辑、特效、调色和音频处理功能。PremierePro2024在保持一贯的高效、稳定和易用的基础上,进一步提升了用户体验和功能强度,使得视频制作更加......
  • 囚徒4.0_11_基于python的风云云检测算法
    #囚徒4.0_11_基于python的风云算法#关于昨天数据不同的问题:是因为IDL和Python的逻辑不同而导致的,数据读取没问题,我表示错了。#换语言好麻烦,现在都不知道什么语法对应什么语言了,一团糟。#从上午十点写到现在,测试的时候发现python他的读取逻辑和IDL不一样,他的循环也不一样,我真......
  • 囚徒4.0_mnist应用
    #囚徒mnist应用importsys,ossys.path.append(r"E:\mytools\vscode_subject\vscode\python\cnn\deep_network")#为了导入父目录的文件而进行的设定importnumpyasnpimportpicklefromdataset.mnistimportload_mnistfromcommon.functionsimportsigmoid,softmax......
  • 囚徒4.0_12
    #囚徒4.0_12importnumpyasnpdefAND(x1,x2):x=np.array([x1,x2])w=np.array([0.5,0.5])b=-0.7temp=np.sum(x*w)+biftemp>0:return1else:return0defOR(x1,x2):x=np.array([x1,x2])w=np.array([1,1])b=-0.5temp=np.sum(x*w)+biftemp>0:return1e......