C#_C++_SDK_WM_KEYDOWN人物卡顿延迟解决方法
提问者采纳 由Keydown和keyup事件组合,keyDown来判定按下,此时开始移动,KeyUp判定松开,这样可行否? 追问 这是我一开始的写法,但就是因为 键盘重复延迟 导致keydown后会有一下停顿 回答 我的意思是有一个在keydown事件中有一个bool量判定是否按下了某个键,比如W,之后作为这类程序应该始终有个线程循环检测按键与画面结果显示(或渲染),最简单的有一个timer,每过一定时间间隔检查一下按键,在keyup里设定bool为松开。这种写法并不靠键盘重复时间来移动,而是靠你的循环函数速度来移动: 全局函数: System.Timers.Timer timer1; 然后是有若干bool量: bool pressW = false; 程序的构造函数里: timer1 = new System.Timers.Timer(20); timer1.Elapsed+=new System.Timers.ElapsedEventHandler(move); timer1.Start(); 你的人物keyDown事件: private void someObject_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) pressW = true; } KeyUP事件: private void someObject_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) pressW = false ; } 最后是移动函数: private void move(object sender, System.Timers.ElapsedEventArgs e) { if(pressW) someObject.Location = new Point(someObject.Location.X, someObject.Location.Y - 1); } 如果你控制的是窗体控件移动,也请使用窗体控件中的timer,不然你会遇上传说中的线程访问窗体控件问题。祝好运。 提问者评价 感谢回答 问了好多天了终于有个好心人出来了
Rust编程语言群 1036955113
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南