检测用户是否按下@登录pygame

时间:2018-05-22 20:59:15

标签: python python-3.x pygame

如何检测用户是否在pygame中按了@符号?

在某些键盘上我需要按SHIFT + 2,在其他键盘上按ALT + V等

这有效:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_RETURN:
        print("ENTER key pressed")

这不是:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_AT:
        print("@ sign pressed")

这仅适用于一种类型的键盘:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_2:
        if pygame.key.get_mods() & pygame.KMOD_SHIFT:
            print("@ sign pressed")

那么我如何在不知道他们使用的键盘类型的情况下检测用户是否按下了?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

Pygame res <- data.frame(lapply(as.list(pdata[ , varlist], keep.attributes = TRUE), Within)) all.equal(pdata.with2, res, check.attributes = FALSE) 返回实际输出(以Unicode格式),如果它是在记事本之类而不是指定键上键入的。

所以这应该起作用:

event.unicode

答案 1 :(得分:0)

根据@Eric@Zoltan的评论,解决方案是:

if event.type == pygame.KEYDOWN:
     if event.unicode == '@':
           print("@ sign pressed")

KEYDOWN事件也具有unicode属性。