libtcod和python中的击键/控件?
在中,用于控制角色的基本代码使用上下左右键。有没有办法让它使用WSAD或任何其他键?Libtcod只允许我使用“特殊”键,如箭头键、PGDN/PGUP、F1 F2 F3,但不允许使用常规的字母数字键libtcod和python中的击键/控件?,python,roguelike,libtcod,Python,Roguelike,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
#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\u Check\u是否有keypress.html
和doc\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