使用 libtcod 和 Python 中的按键/控制?

2024-06-16 10:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

Roguebasin上的Python/Libtcod tutorial中,控制字符的基本代码使用上下左右键。有没有办法让它使用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

Tags: key代码iskeystutorialconsoleelifpressed
2条回答

您也可以只对每个键使用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

你必须这样做:

    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

检查您的libtcod文件夹中的doc\console\console_check_for_keypress.html和{}。在

相关问题 更多 >