键盘按键会失灵长按完全替换能做到吗,要长按也有效果的

玩游戏,让键盘按键长按 起到 连续按的 效果怎么弄?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
玩游戏,让键盘按键长按 起到 连续按的 效果怎么弄?
玩游戏,让键盘按键长按 起到 连续按的 效果怎么弄?
主要是玩第九大陆(c9)东西多了捡东西的时候得连续不停地按那样很累 怎么才能 长按捡东西那个键 它就一直捡东西 也就是说怎么按键开连发 按键精灵 什么的软件就不要说了 按键连发的软件一打开游戏就断...
我有更好的答案
如果你的连续捡东西宏之外还有宏要执行,只要另外一个宏被执行,你之前的宏就会被停止;罗技键盘的宏是可以同时执行多个宏,而且有3个配置文件可以自由免驱切换,这键盘可以把一个键设成连发功能,一次只能执行一个宏,主配置不动的情况下还有两个完整键盘键位可定义,可是血手的宏有个弱点这个你要花点钱,换个血手幽灵B120键盘
大约多少钱呢
还有没有别的办法
169元,如果你不快点下手去买,有可能回退市,厂家主打机械键盘,薄膜的不受重视。
这键盘只是设宏时用驱动,运行宏时免驱,所以只要延迟不太过分,不存在被游戏屏蔽的问题。
那你就多找一找连发工具 总有一个好用的或者买个手柄 用joytokey
或者有编程键的键盘
为您推荐:
其他类似问题
懂得珍惜的相关知识
等待您来回答春花秋月何时了?活动不能少。无奈上海路又遥,21ic探报……
MWC(世界移动通信大会)22号正式开幕了,手机不再唱主角,……
无论是 《机械公敌》 里的终极大BOSS还是POI的the machi……
ApplePay自从今年3月正式入华,不少人在尝鲜之后都大呼……
演讲人:黄孝旋时间: 10:00:00
演讲人:陶瑜浦时间: 10:00:00
演讲人:张亚晖时间: 10:00:00
预算:¥5,000-¥10000预算:¥5,000-¥10000
第11节:同一个按键短按与长按的区别触发
[导读]从业将近十年!手把手教你单片机程序框架 第十一节:开场白:上一节讲了类似电脑键盘组合按键触发的功能,这节要教会大家一个知识点:如何在上一节的基础上,略作修改,就可以实现同一个按键短按与长按的区别触发。具
从业将近十年!手把手教你单片机程序框架 第十一节:
上一节讲了类似电脑键盘组合按键触发的功能,这节要教会大家一个知识点:如何在上一节的基础上,略作修改,就可以实现同一个按键短按与长按的区别触发。
具体内容,请看源代码讲解。
(1)硬件平台:基于朱兆祺51单片机学习板。用矩阵键盘中的S1和S5号键作为独立按键,记得把输出线P0.4一直输出低电平,模拟独立按键的触发地GND。
(2)实现功能:两个独立按键S1和S5,按住其中一个按键,在短时间内松手,则认为是短按,触发蜂鸣器短鸣一声。如果一直按住这个按键不松手,那么超过规定的长时间内,则认为是长按,触发蜂鸣器长鸣一声。
(3)源代码讲解如下:
#include &REG52.H&
#define const_voice_short 20 //蜂鸣器短叫的持续时间
#define const_voice_long 140 //蜂鸣器长叫的持续时间
/* 注释一:
* 调整抖动时间阀值的大小,可以更改按键的触发灵敏度。
* 去抖动的时间本质上等于累计定时中断次数的时间。
#define const_key_time_short1 20 //短按的按键去抖动延时的时间
#define const_key_time_long1 400 //长按的按键去抖动延时的时间
#define const_key_time_short2 20 //短按的按键去抖动延时的时间
#define const_key_time_long2 400 //长按的按键去抖动延时的时间
void initial_myself();&
void initial_peripheral();
void delay_long(unsigned int uiDelaylong);
void T0_time(); //定时中断函数
void key_service(); //按键服务的应用程序
void key_scan(); //按键扫描函数 放在定时中断里
sbit key_sr1=P0^0; //对应朱兆祺学习板的S1键
sbit key_sr2=P0^1; //对应朱兆祺学习板的S5键
sbit key_gnd_dr=P0^4; //模拟独立按键的地GND,因此必须一直输出低电平
sbit beep_dr=P2^7; //蜂鸣器的驱动IO口
unsigned char ucKeySec=0; //被触发的按键编号
unsigned int uiKeyTimeCnt1=0; //按键去抖动延时计数器
unsigned char ucKeyLock1=0; //按键触发后自锁的变量标志
unsigned char ucShortTouchFlag1=0; //短按的触发标志
unsigned int uiKeyTimeCnt2=0; //按键去抖动延时计数器
unsigned char ucKeyLock2=0; //按键触发后自锁的变量标志
unsigned char ucShortTouchFlag2=0; //短按的触发标志
unsigned int uiVoiceCnt=0; //蜂鸣器鸣叫的持续时间计数器
void main()&
initial_myself();&
delay_long(100);&
initial_peripheral();&
key_service(); //按键服务的应用程序
void key_scan()//按键扫描函数 放在定时中断里
/* 注释二:
* 长按与短按的按键扫描的详细过程:
* 第一步:平时只要按键没有被按下时,按键的自锁标志,去抖动延时计数器一直被清零。
* 第二步:一旦两个按键都被按下,去抖动延时计数器开始在定时中断函数里累加,在还没累加到
* 阀值const_key_time_short1或者const_key_time_long1时,如果在这期间由于受外界干扰或者按键抖动,而使
* IO口突然瞬间触发成高电平,这个时候马上把延时计数器uiKeyTimeCnt1
* 清零了,这个过程非常巧妙,非常有效地去除瞬间的杂波干扰。这是我实战中摸索出来的。
* 以后凡是用到开关感应器的时候,都可以用类似这样的方法去干扰。
* 第三步:如果按键按下的时间超过了短按阀值const_key_time_short1,则马上把短按标志ucShortTouchFlag1=1;
* 如果还没有松手,一旦发现按下的时间超过长按阀值const_key_time_long1时,
* 先把短按标志ucShortTouchFlag1清零,然后触发长按。在这段程序里,把自锁标志ucKeyLock1置位,
* 是为了防止按住按键不松手后一直触发。
* 第四步:等按键松开后,自锁标志ucKeyLock12及时清零,为下一次自锁做准备。如果发现ucShortTouchFlag1等于1,
* 说明短按有效,这时触发一次短按。
* 第五步:以上整个过程,就是识别按键IO口下降沿触发的过程。
if(key_sr1==1)//IO是高电平,说明两个按键没有全部被按下,这时要及时清零一些标志位
ucKeyLock1=0; //按键自锁标志清零
uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。&
if(ucShortTouchFlag1==1) //短按触发标志
ucShortTouchFlag1=0;
ucKeySec=1; //触发一号键的短按
else if(ucKeyLock1==0)//有按键按下,且是第一次被按下
uiKeyTimeCnt1++; //累加定时中断次数
if(uiKeyTimeCnt1&const_key_time_short1)&
ucShortTouchFlag1=1; //激活按键短按的有效标志&
if(uiKeyTimeCnt1&const_key_time_long1)&
ucShortTouchFlag1=0; //清除按键短按的有效标志
uiKeyTimeCnt1=0;&
ucKeyLock1=1; //自锁按键置位,避免一直触发
ucKeySec=2; //触发1号键的长按
if(key_sr2==1)//IO是高电平,说明两个按键没有全部被按下,这时要及时清零一些标志位
ucKeyLock2=0; //按键自锁标志清零
uiKeyTimeCnt2=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。&
if(ucShortTouchFlag2==1) //短按触发标志
ucShortTouchFlag2=0;
ucKeySec=3; //触发2号键的短按
else if(ucKeyLock2==0)//有按键按下,且是第一次被按下
uiKeyTimeCnt2++; //累加定时中断次数
if(uiKeyTimeCnt2&const_key_time_short2)&
ucShortTouchFlag2=1; //激活按键短按的有效标志&
if(uiKeyTimeCnt2&const_key_time_long2)&
ucShortTouchFlag2=0; //清除按键短按的有效标志
uiKeyTimeCnt2=0;&
ucKeyLock2=1; //自锁按键置位,避免一直触发
ucKeySec=4; //触发2号键的长按
void key_service() //第三区 按键服务的应用程序
switch(ucKeySec) //按键服务状态切换
case 1:// 1号键的短按 对应朱兆祺学习板的S1键
uiVoiceCnt=const_voice_ //按键声音的短触发,滴一声就停。
ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发
case 2:// 1号键的长按 对应朱兆祺学习板的S1键
uiVoiceCnt=const_voice_ //按键声音的长触发,滴一声就停。
ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发
case 3:// 2号键的短按 对应朱兆祺学习板的S5键
uiVoiceCnt=const_voice_ //按键声音的短触发,滴一声就停。
ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发
case 4:// 2号键的长按 对应朱兆祺学习板的S5键
uiVoiceCnt=const_voice_ //按键声音的长触发,滴一声就停。
ucKeySec=0; //响应按键服务处理程序后,按键编号清零,避免一致触发
void T0_time() interrupt 1
TF0=0; //清除中断标志
TR0=0; //关中断
key_scan(); //按键扫描函数
if(uiVoiceCnt!=0)
uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止。才停止鸣叫
beep_dr=0; //蜂鸣器是PNP三极管控制,低电平就开始鸣叫。
; //此处多加一个空指令,想维持跟if括号语句的数量对称,都是两条指令。不加也可以。
beep_dr=1; //蜂鸣器是PNP三极管控制,高电平就停止鸣叫。
TH0=0xf8; //重装初始值()=f
TR0=1; //开中断
void delay_long(unsigned int uiDelayLong)
for(i=0;i&uiDelayLi++)
for(j=0;j&500;j++) //内嵌循环的空指令数量
; //一个分号相当于执行一条空语句
void initial_myself() //第一区 初始化单片机
/* 注释三:
* 矩阵键盘也可以做独立按键,前提是把某一根公共输出线输出低电平,
* 模拟独立按键的触发地,本程序中,把key_gnd_dr输出低电平。
* 朱兆祺51学习板的S1和S5两个按键就是本程序中用到的两个独立按键。
key_gnd_dr=0; //模拟独立按键的地GND,因此必须一直输出低电平
beep_dr=1; //用PNP三极管控制蜂鸣器,输出高电平时不叫。
TMOD=0x01; //设置定时器0为工作方式1
TH0=0xf8; //重装初始值()=f
void initial_peripheral() //第二区 初始化外围
EA=1; //开总中断
ET0=1; //允许定时中断
TR0=1; //启动定时中断
总结陈词:
在很多需要人机交互的项目中,需要用按键来快速加减某个数值,这个时候如果按住一个按键不松手,这个数值要有节奏地快速往上加或者快速往下减。要现实这种功能,我们该怎么写程序?欲知详情,请听下回分解-----按住一个独立按键不松手的连续步进触发。
  通用运动控制技术现状、发展及其应用:运动控制技术的发展是制造自动化前进的旋律,是推动新的产业革命的关键技术。运动控制器已经从以单片机或微处理器作为核心的运动控制器和以专用芯片(ASIC)作为核心处理器的......关键字:
英特尔于日宣布了4004处理器及其芯片集,它是芯片巨人第一个完整的单片机和第一个商业微处理器。4004处理器有2300个晶体管,手指甲大小,计算性能与第一代电子计算机相当,但第一代计算机需要占据整间房......关键字:
爱可视的平板产品覆盖面很广,既有面向儿童推出的 7 寸 Arnova Child Pad,又有配置键盘的 101 XS,现在他们又推出了为游戏玩家准备的 GamePad。这款 7 寸平板采用了双核 1.5GHz 处理器、4 核 Mali ......关键字:
说说我对于物联网的看法。首先,可以肯定的是,物联网肯定是将来发展的一个大方向,这个毋庸置疑,但是物联网的真正崛起可能还需要一段时间。要让物能联网,必须要有一个微型的控制器,这个控制器就是所谓的单片机,这个单片机的功能不需要很强,但是最好能低......关键字:
作为一名热衷于AM硬件开发平台的工程师,树莓派(Raspberry Pi)引发了不少爱好者的狂热。但是奔往梦想的路途永无止境,如果你想要更多一些的能量,尤其是x86的加持,那当前正在Kickstarter上众筹的JaguarBoard显然是......关键字:
作为过来人思前想后,我感到完全有责任将发自心底的感受传递给年轻一代,“一个企业家心灵深处渴望优秀人才的卓越追求和深层次的叹息、痛苦和感受”。您们千万不要等到毕业求职时才觉得自己能力太差,世界上从来就没有后悔药。......关键字:
我 要 评 论
热门关键词问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
键盘的按下或者松开事件都是可以单独检测的,目前代码
bool HelloWorld::init(){
auto listenerKeyboard = EventListenerKeyboard::create();
listenerKeyboard-&onKeyPressed = CC_CALLBACK_2(HelloWorld::onKeyPressed, this);
listenerKeyboard-&onKeyReleased = CC_CALLBACK_2(HelloWorld::onKeyReleased, this);
_eventDispatcher-&addEventListenerWithSceneGraphPriority(listenerKeyboard, this);
void HelloWorld::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)
差不多这样一个情况,我放置了一个sprite,onKeyPressed里面实现的是按下方向键sprite会向一个方向移动10个单位
问题是如果按住方向键的话只有一次onKeyPressed能触发,如果让Sprite保持移动需要不停的按方向键
向各位大牛求教,有木有什么方法可以检测到按住或者实现类似的机理?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
一个简单地笨办法就是:
用一个 bool keyState 来记录这个键的按下状态,如果 true 代表按下否则代表没按下。
然后监听事件:按下的时候设置这个 keyState 为 true,弹起的时候设置为 false。那么也就是说如果为 true 的话,这个键就是处于按下状态。
最后,自己可以实现这么一整套机制,然后弄出一个全局的按键状态表。
至于 Cocos2dx 原生有没有实现方法,我不知道——因为我不是写 Cocos2dx 的啊。
希望能够抛砖引玉。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你可以在update里面检测这个按键,如果按下就setposition,就能达到你的效果
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
写了一篇博文,专门解决这个问题。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在按键的onKeyPressed事件里创建一个定时器按照时间间隔delta*speed来改变sprite的坐标。然后在onKeyReleased事件里注销这个定时器。
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:您现在的位置: >>
>> 浏览文章
键盘失灵的三大原因和相应的处理办法
电脑键盘突然失灵了,怎么按都没反应,不少常用电脑的人都会碰到这个问题,这个时候千万别再使劲的按按键,这样只会把键盘弄的更糟,键盘失灵的原因很多的,我们要对症下药的排查和解决问题,下面的是最常见的原因和解决办法
一:数字小键盘失灵
 如果是台式电脑小键盘失灵的话,原因可能在于没有开启小键盘注意看Numlock键上的灯亮了没有,没亮的话,按下Numlock键开启了小键盘就可以使用了
 如果是笔记本键盘失灵的话,因为笔记本电脑键盘的空间有限,在设计的时候把数字小键盘的功能融合在字母键里了如果笔记本本键盘右边的按键打不出字母都是数字话。这个时候可以按 fn+Numlk 键就可以切换字母/数字输入,有些菜鸟不知道这一点,当打不出字母的时候,还以为是键盘坏了
二:部分按键失灵
 键盘部分按键失灵一般是因为电脑键盘内部线路板有毛病,键盘内部线路板或导电塑胶长期不清洁有灰尘污垢太多,从而使电路无法接通。就会导致部分按键失灵!如果是这个原因的话,我们就要清理键盘,将里面的污垢灰尘,碎渣清理干净。
下面是具体步骤:
1.拧开螺丝打开键盘。打开键盘时注意按钮面(我们用键盘时面向我们的那面)向下,线路板向上,这样按键上的导电塑胶才不会脱落
2.线路板通常都是薄薄的一层塑料膜,我们用高浓度酒精棉花(医用酒精棉花也可以,浓度越高的越好)轻轻的擦洗,把灰尘污垢都擦掉按键失灵的部分尤其要多擦。
3.对失灵的那部分导电塑胶进行清洗,如果是失灵的那部分导电塑胶损坏了的话,我们可以把不常用按键上的导电塑胶换到已损坏的部分,因为有些键基本上是用不到的,物尽其用延长键盘寿命
4.导电塑胶和线路板之外的键盘角落部分可用软毛刷刷,将回程刷掉
5.检查有些焊接模块是否断裂脱开,如果会使用电烙铁的话可以将其焊接上
6.待酒精挥发干净后,在再把键盘重装上!
三:键盘驱动导致键盘失灵
如果是键盘驱动不兼容导致键盘失灵的话,我们就只有更新键盘驱动了,
1,找到设备管理器里的键盘驱动更新驱动
1)在桌面上,右键点我的电脑》点属性》选择硬件》打开设备管理器》找到键盘,Windows XP对应的键盘驱动是&标准101/102键或Microsoft自然PS/2键盘
2). 右键点&标准101/102键或Microsoft自然PS/2键盘&,选更新驱动程序,弹出硬件更新向导,点&下一步&。
3)进入&选择要为此硬件安装的设备驱动程序&办复选框&显示兼容硬件&小勾去掉。在&标准键盘型号&栏中选择&Japanese PS/2 Keyboard (106/109 Key)&,单击&下一步&,
4)弹出&更新驱动程序警告&,点&是&。在&确认设备安装&窗口继续点&是&。
2. 在完成硬件更新向导所有步骤后。重启电脑并修改注册表。
修改注册表相应的数值:&开始&》&运行&,输入&regedit&,打开注册表,
具体路径&HKEY_LOCAL_MACHINE\ SYSTEM\ControlSet001\Control\Keyboard Layouts&
导致键盘失灵的原因最常见的原因就以上几种,另外其他的键盘插头,线路有问题,主板,CPU出现故障都可能导致部分按键失灵,但是这些原因不常见
键盘失灵的三大原因和相应的处理办法来自:/html/dngz/qtsbgz/7357.html
相关文章阅读:特玩传送门
网络游戏移动第一门户

我要回帖

更多关于 android 按键长按事件 的文章

 

随机推荐