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();
- 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 - );
- }
- 如果你控制的是窗体控件移动,也请使用窗体控件中的timer,不然你会遇上传说中的线程访问窗体控件问题。祝好运。
- 提问者评价
- 感谢回答
- 问了好多天了终于有个好心人出来了
C#_C++_SDK_WM_KEYDOWN人物卡顿延迟解决方法的更多相关文章
- Win10蓝牙鼠标老是断连卡顿的解决方法
一直用一个微软家的蓝牙鼠标,饱受鼠标卡顿困扰,今天找到了一个解决方案,用了下,效果显著.具体操作见下文. 原文地址:https://jingyan.baidu.com/article/c85b7a64 ...
- 安卓手机USB无法共享、上网或卡顿的解决方法
安卓手机通过USB为电脑(Windows10)提供网络接入点时,系统程序会异常卡顿. 1)设备管理器2)点击“网络适配器”,在弹出的下拉列表中选择”Remote NDIS based Internet ...
- wordpress后台打开慢/卡顿的解决方法
---------------------2014年12月29日更新--------------------- 我已经用下面提到的第三种方法禁用了谷歌字体了,最近wordpress后台还是莫名奇妙地非 ...
- Visual Studio 调试卡顿的解决方法
将不用的断点删除 关闭调试时打开的"IntelliXXX的窗口" 上面的第2条测试有效! https://social.msdn.microsoft.com/Forums/zh-C ...
- 织梦DEDECMS本地后台操作卡顿的解决方法
打开/data/common.inc.php,把默认的$cfg_dbhost = ‘localhost‘修改为$cfg_dbhost = ‘127.0.0.1’;保存.然后你会发现后台操作起来流畅多了 ...
- app内嵌h5页面在ios手机端滑动卡顿的解决方法
1.带滚动条的dom需加样式 -webkit-overflow-scrolling: touch;2.去掉 width:100%; height:100%
- Selenium -- ActionChains().move_by_offset() 卡顿的解决方法
测试运行时间 运行时间 发现每次0.5秒,此时需要修改默认的时间 打开Python安装目录下的Lib\site-packages\selenium\webdriver\common\actions\p ...
- win10桌面右键卡顿卡死解决方法
win+R,打开命令行 输入services.msc 找到NADIA Display Container LS,将其由自动改为禁用,解决问题. PS:网上有些改注册表的方法,确实可以治标,但是大家都应 ...
- emwin之BUTTON控件显示位图和流位图出现卡顿延迟的情况
@2019-05-16 [问题] 参照Armfly的emwin教程第46章 BUTTON-按钮控件显示位图和流位图,实际使用时导致界面切换卡顿延迟较大的情况 [环境] F429IGT6 + W9825 ...
随机推荐
- Android Popupwindow 拖动
版本号:1.0 日期:2014.4.29 版权:© 2014 kince 转载注明出处 关于View的拖动大家应该比較了解了,比方对一个控件IamgeView拖动,或者一个视图View拖动,实现方式也 ...
- 黑马程序员_<<String类>>
--------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. String类 1.概述 String ...
- Class constructor
// example: class constructor #include <iostream> using namespace std; class Rectangle { in ...
- android-带进度条的系统通知栏消息
效果图: 主界面只有一个按钮就不上文件了 通知栏显示所用到的布局文件content_view.xml <?xml version="1.0" encoding="u ...
- Nio Server
package org.fxc.nio.server; import java.io.FileInputStream; import java.io.IOException; import java. ...
- 数据库MySQL多个数据库服务冲突
一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭 —— 注意:如果防火墙不关闭 ...
- MFC的资源切换AFX_MANAGE_STATE(AfxGetStaticModuleState()
转载自:http://blog.chinaunix.net/uid-20532101-id-1931929.html 以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的 ...
- day7_python学习笔记_chapter9_文件
1. open(), file(), 作用完全相同 2. 语法: file_object = open(file_name, access_mode='r', buffering='-1') acce ...
- HTML5 调用手机相册和摄像头的方法并上传微信下测试通过
<input type="file" capture="camera" accept="image/*" id="camer ...
- 学习笔记--DI(依赖注入) 、Ioc(控制反转)
一.概述 日期:2013-12-12 今天主要研究的是依赖注入(Dependency Injection),感觉收获很多,特别在思想上. 本人技术有限,有兴趣的朋友可以看一下文章: ①http://b ...