libtcod和Python中的按键/控制?
在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
2 个回答
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
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
查看你在 libtcod
文件夹里的 doc\console\console_check_for_keypress.html
和 doc\console\key_t.html
文件。