繁体   English   中英

libtcod和python中的按键/控件?

[英]Keystrokes/Controls in libtcod and python?

Python中/ Libtcod教程Roguebasin控制你的角色的基本代码使用上下左右键。 有没有办法使它使用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

您将必须执行以下操作:

    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.htmldoc\\console\\key_t.html

您还可以为每个键仅使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM