监听键盘输入时,如何判定以中文输入法输入的内容?

2023-12-26 15:12:13 +08:00
 SeleiXi
如题,本人在测试以 pygame 开发的游戏时,输入物件移动的 WASD 时会因为用户以中文输入法输入而无法进行移动。
1578 次点击
所在节点    Python
10 条回复
b821025551b
2023-12-26 15:32:52 +08:00
关键词“IME”,不熟悉 pygame ,搜了一下这个 https://www.cnblogs.com/Renqy/p/12841745.html 可以参考其中 IME 部分。
AoEiuV020JP
2023-12-26 15:33:58 +08:00
前阵子帮公司 qt 解决了这种问题,解决方法是,问 AI ,
renmu
2023-12-26 15:36:49 +08:00
让用户切输入法,打单机的应该都知道吧
SeleiXi
2023-12-26 15:48:38 +08:00
@b821025551b 貌似不行,他根本沒有检测到有键盘输入这个事件
SeleiXi
2023-12-26 15:49:06 +08:00
@AoEiuV020JP 换了几种方法问过了 awa ()
SeleiXi
2023-12-26 15:49:28 +08:00
@renmu 但自己玩很多单机的时候都不用切呀
ashuai
2023-12-26 16:11:48 +08:00
csl123
2023-12-26 16:15:16 +08:00
搜索一下 IME 或者 composition event
darcyC
2023-12-26 16:42:56 +08:00
可以的哦,看一下下面的事件:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

elif event.type == pygame.TEXTEDITING:
print("TEXTEDITING", event) ## 看这个事件哦
darcyC
2023-12-26 16:45:15 +08:00
如果要完全停止处理中文输入,使用 pygame.key.stop_text_input()
默认是启用的,所以会被 TEXTEDITING 事件处理。
pygame.key 这个 module 还可以设置候选框的位置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1003523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX