今日、私はさらにこの Python ローグライク チュートリアルに進み、インベントリにたどり着きました。今のところ、アイテムを拾って使用できます。唯一の問題は、インベントリにアクセスすると、機能を使用したにもかかわらず、ほんの一瞬しか表示されないことですconsole_wait_for_keypress(True)
。なぜ消えたのかはよくわかりません。メニュー (この場合は在庫) を表示するコードは次のとおりです。
def menu(header,options,width):
if len(options)>26: raise ValueError('Cannot have a menu with more than 26 options.')
header_height=libtcod.console_get_height_rect(con,0,0,width,SCREEN_HEIGHT,header)
height=len(options)+header_height
window=libtcod.console_new(width,height)
libtcod.console_set_default_foreground(window,libtcod.white)
libtcod.console_print_rect_ex(window,0,0,width,height,libtcod.BKGND_NONE,libtcod.LEFT,header)
y=header_height
letter_index=ord('a')
for option_text in options:
text='('+chr(letter_index)+')'+option_text
libtcod.console_print_ex(window,0,y,libtcod.BKGND_NONE,libtcod.LEFT,text)
y+=1
letter_index+=1
x=SCREEN_WIDTH/2-width/2
y=SCREEN_HEIGHT/2-height/2
libtcod.console_blit(window,0,0,width,height,0,x,y,1.0,0.7)
libtcod.console_flush()
key=libtcod.console_wait_for_keypress(True)
index=key.c-ord('a')
if index>=0 and index<len(options): return index
return None
この問題に対する誰かの助けや意見をいただければ幸いです。