0

event.unicode以前はこのタスクに使用していました。shift+を押すと、キーダウンのイベントには '(' の unicode 属性が9含まれます。また、shift+ alt+9を押すと、キーダウンのイベントには '(' の unicode 属性があり、キーボードもAltキーのkeydown。押されたことがわかります。

ただし、ctrl+ shift+を押す9と、event.unicode == u''. どうすればそこu'('から戻ることができますか?

(同様に、ctrl++については、 を取得しshiftます)a'\x01'

4

3 に答える 3

1

さて、これがキーを作成するための完全な意図だったので、押されている間にあなたが解放するすべてのキーストロークCTRLは「変更」されCTRLます:単なるテキストの代わりに制御命令を送信します。

ASCIIテーブルを見ると、たとえばCTRL+が制御文字にどのようHにマップされているかがわかりますBS (Backspace)

したがって、ここであなたが++を介して単に受け取る機会'('CTRLありませSHIFTん。9KEY_DOWN


pygame.key.get_pressed()押されたキーを確認するために通過する必要があります。

    if e.type == KEYDOWN:
        k = pygame.key.get_pressed()
        m = pygame.key.get_mods()
        if m & KMOD_SHIFT and k[K_9]:
            if m & KMOD_CTRL:
                print "controlled yay!"
            else:
                print "yay!"
于 2012-08-31T11:31:21.853 に答える
0

おそらくもっと簡単な方法がありますが、 を使用してキーボードのすべてのキーの状態を取得し、押された 2 つのキーが、 、キーpygame.key.get_pressed()であるかどうかを確認できます。次に、関数から取得する代わりに、文字列+を手動で返すことができます。ただし、これを行うための本当にエレガントな方法があるかどうかはわかりません。CtrlShift9Ctrl(

于 2012-09-05T01:34:39.903 に答える