首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libtcod和python中的击键/控件?

libtcod和python中的击键/控件?
EN

Stack Overflow用户
提问于 2011-06-20 21:25:57
回答 2查看 2.6K关注 0票数 2

Roguebasin上的Python/Libtcod tutorial中,用于控制角色的基本代码使用向上、向下、向左和向右键。有没有办法让它使用WSAD或任何其他密钥?Libtcod只允许我使用“特殊”键,像箭头键,PGDN/PGUP,F1 F2 F3,而不是普通的字母数字键。

代码语言:javascript
复制
#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
EN

回答 2

Stack Overflow用户

发布于 2011-06-22 04:56:28

你必须这样做:

代码语言:javascript
复制
    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

票数 4
EN

Stack Overflow用户

发布于 2017-01-04 11:13:11

您还可以仅对每个键使用ASCII代码,以节省代码空间:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6411859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档