如何解决2人同时玩游戏时键盘冲突问题

时间:2022-02-06 21:41:48
2人玩的游戏
在同一游戏
用同一键盘
但是同时按下的会有冲突
如何解决啊

22 个解决方案

#1


呵呵,不会,关注,以前我玩小游戏里也遇到同样的难题。
建议你把那个赶走!:)

#2


up

#3


很简单啊,买一个手柄好了:P

#4


怎么冲突呢?
应该统一进入队列吧?

#5


up

#6


我没有做过

提供个思路

不要在键盘事件内处理操作

用多线程

#7


是啊,多线程!!!

#8


*飞车两人用键盘也有这个缺点,,,,

他们的公司可不小,,。。。。。。。。。。

#9


不太可能,
为什么因为这是因为WIN的原程序的一个消息队列好像就是来一个消息,处理一下,再处理下一个消息,除非用多进程来同时处理消息,就是说收到键盘消息后看看到底由进程一处理还是进程二处理,
但是只要用到多线程就要考虑到线程安全问题,
那个问题好像比这个问题还复杂,
想想一下两个线程同时读取一些内存区域时会发生的情况吧.

#10


对,用多线程

#11


不,两人双打,键盘的侦测时间毫秒级的,不会出现冲突。即便按着不松手也不会出现冲突

#12


>>不,两人双打,键盘的侦测时间毫秒级的,不会出现冲突。即便按着不松手也不会出现冲突

会冲突的,

游戏中的player1出拳5秒钟,player2出拳4秒钟

player1按了键盘出拳,一秒后player2也按了键盘出拳

如果你在同一个线程里处理的话,你会发现,player1的拳头打完了,player2的拳头才出来....

一定要使用多线程的....而且还需要一个优秀的线程调度算法...

#13


使用dx input

#14


键盘问题,我用二手商那买的东芝键盘没出现过这样的问题,用别的键盘就有这样的冲突。

#15


*飞车有这个问题,不过不严重~

拳皇97比较严重~

#16


大哥,
键盘的问题啦,
换键盘!!!!!!!!!!!

#17


楼上这位大哥真是厉害!
我有一招不知楼主是否愿意一试:

很简单嘛……机器上接2个键盘啊!对吧!哈哈!
搞不好还可以4个人打啊!

#18


在说键盘啊!!!!!

#19



跟软件没多大关系。

要么买个手柄,要么装两个键盘,要么把那蹭机子的哥们儿一脚踹开。

另:本人只对第一个建议负责。

#20


怎么个冲突?用不同的键不行吗?

#21


对,打拳皇是有这问题.

#22


这是因为用的是Windows的键盘监测API,最大只能判定40ms级别8个按键(每个按键5ms),就是说如果按键时间间隔小于5ms或者同时按下8个以上键就不能监测到了。如果用汇编的BIOS中断处理就不会有这种问题了。

#1


呵呵,不会,关注,以前我玩小游戏里也遇到同样的难题。
建议你把那个赶走!:)

#2


up

#3


很简单啊,买一个手柄好了:P

#4


怎么冲突呢?
应该统一进入队列吧?

#5


up

#6


我没有做过

提供个思路

不要在键盘事件内处理操作

用多线程

#7


是啊,多线程!!!

#8


*飞车两人用键盘也有这个缺点,,,,

他们的公司可不小,,。。。。。。。。。。

#9


不太可能,
为什么因为这是因为WIN的原程序的一个消息队列好像就是来一个消息,处理一下,再处理下一个消息,除非用多进程来同时处理消息,就是说收到键盘消息后看看到底由进程一处理还是进程二处理,
但是只要用到多线程就要考虑到线程安全问题,
那个问题好像比这个问题还复杂,
想想一下两个线程同时读取一些内存区域时会发生的情况吧.

#10


对,用多线程

#11


不,两人双打,键盘的侦测时间毫秒级的,不会出现冲突。即便按着不松手也不会出现冲突

#12


>>不,两人双打,键盘的侦测时间毫秒级的,不会出现冲突。即便按着不松手也不会出现冲突

会冲突的,

游戏中的player1出拳5秒钟,player2出拳4秒钟

player1按了键盘出拳,一秒后player2也按了键盘出拳

如果你在同一个线程里处理的话,你会发现,player1的拳头打完了,player2的拳头才出来....

一定要使用多线程的....而且还需要一个优秀的线程调度算法...

#13


使用dx input

#14


键盘问题,我用二手商那买的东芝键盘没出现过这样的问题,用别的键盘就有这样的冲突。

#15


*飞车有这个问题,不过不严重~

拳皇97比较严重~

#16


大哥,
键盘的问题啦,
换键盘!!!!!!!!!!!

#17


楼上这位大哥真是厉害!
我有一招不知楼主是否愿意一试:

很简单嘛……机器上接2个键盘啊!对吧!哈哈!
搞不好还可以4个人打啊!

#18


在说键盘啊!!!!!

#19



跟软件没多大关系。

要么买个手柄,要么装两个键盘,要么把那蹭机子的哥们儿一脚踹开。

另:本人只对第一个建议负责。

#20


怎么个冲突?用不同的键不行吗?

#21


对,打拳皇是有这问题.

#22


这是因为用的是Windows的键盘监测API,最大只能判定40ms级别8个按键(每个按键5ms),就是说如果按键时间间隔小于5ms或者同时按下8个以上键就不能监测到了。如果用汇编的BIOS中断处理就不会有这种问题了。