2

RoguebasinのPython/Libtcod チュートリアルは、キャラクターを制御するための基本的なコードは上下左右のキーを使用します。WSAD またはその他のキーを使用する方法はありますか? libtcod では、矢印キー、PGDN/PGUP、F1 F2 F3 などの「特殊な」キーのみを使用できますが、通常の英数字キーは使用できません。

#movement keys
def handle_keys():
    global playerx, playery


    if libtcod.console_is_key_pressed(libtcod.KEY_UP):
        playery -= 1

    elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN):
        playery += 1

    elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT):
        playerx -= 1

    elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT):
        playerx += 1
4

2 に答える 2

4

次のようなことをする必要があります。

    key = libtcod.console_check_for_keypress(libtcod.KEY_PRESSED)

    if key.vk == libtcod.KEY_CHAR:
        if key.c == ord('w'):
            playery -= 1
        elif key.c == ord('s'):
            playery += 1
        elif key.c == ord('a'):
            playerx -= 1
        elif key.c == ord('d'):
            playerx += 1

doc\console\console_check_for_keypress.htmlとフォルダを確認doc\console\key_t.htmlしてください。libtcod

于 2011-06-21T20:56:28.283 に答える
0

コードスペースを節約するために、各キーに ASCII コードのみを使用することもできます。

if key.c == 119: #w
        playery -= 1
    elif key.c == 115: #s
        playery += 1
    elif key.c == 97: #a
        playerx -= 1
    elif key.c == 100: #d
        playerx += 1
于 2017-01-04T03:13:11.310 に答える