pygame键盘事件产生双字符

时间:2018-11-21 10:09:25

标签: python pygame keyboard-events

在python程序中,键盘用于在屏幕框中输入文本。如果用户键入速度更快,有时字符会加倍。也就是说,用户键入“ hello”,但屏幕上显示“ hhellloo”。看来,keydown事件会产生重复的键,因此我在pygame.key.set_repeat(0,500)命令中测试了不同的选项,但没有任何改变。问题在Python2和Python3下存在,我正在使用最新版本的Fedora Linux。

import pygame
for event in pygame.event.get():
  if event.type == pygame.KEYDOWN:
    print(event.key)

我知道,键盘事件有点难以处理。在C ++ / SFML中,有一个类似

的选项
if (event.type == sf::Event::TextEntered)

请求显式文本输入,效果很好。我也可以使用pygame在Python中获得有效的键盘输入吗?

帧速率 问题可以定界,仅在低帧率时才存在。这意味着,如果游戏循环以每秒10帧的速度运行,则一次按键会生成多个键盘事件,而在30 fps以上的帧速率下,键盘输入效果很好。这意味着那里没有重复的键。我不知道是什么原因,但我想以低帧率运行游戏并获得准确的输入行为。

set_repeat 很好的提示是问题位于set_repeat中。在我的设置中,此命令无法正常运行。如果删除命令,则没有任何变化。但是应该。根据定义,“ set_repeat”语句控制键是否被打印两次。

0 个答案:

没有答案