2013-02-21 4 views
1

Libtcod를 사용하여 파이썬에서 로거를 만드는 중입니다. 코드를 실행하면 화면에 심볼이 그려지지만 창은 멈 춥니 다. 그런 다음 응답하지 않는다고 말합니다. 나는 무슨 일이 일어나고 있는지 이해하지 못한다. 여기에 코드입니다 :Python 프로그램이 실행될 때 응답하지 않습니다.

import libtcodpy as libtcod; 

SCREEN_WIDTH = 80; 
SCREEN_HEIGHT = 50; 
LIMIT_FPS = 20; 

libtcod.console_set_custom_font('arial10x10.png', libtcod.FONT_TYPE_GREYSCALE | libtcod.FONT_LAYOUT_TCOD); 

libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'Lets Crawl', False); 

libtcod.sys_set_fps(LIMIT_FPS); 

playerx = SCREEN_WIDTH/2; 
playery = SCREEN_HEIGHT/2; 

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 


while not libtcod.console_is_window_closed(): 
    #libtcod.console_set_default_foreground(0, libtcod.white); 
    libtcod.console_put_char(0, 1, 1, 'b'); 
    libtcod.console_flush(); 
+0

while 루프와 관련이 있다는 것을 알고 있습니다. –

+2

아름다운 파이썬 언어를 사용하는 세미콜론은 무엇입니까? :-) – paxdiablo

+0

저는 Java LOL에 익숙합니다. 이것은 나를 미치게합니다. 지금 디버깅 3 시간 –

답변

0

이 무한 루프 (당신의 while 루프를) 실행되기 때문에 게임이 응답하지 않습니다.

사용자 입력을 실제로 처리 할 수 ​​있도록 루프의 어느 곳에서나 libtcod.console_wait_for_keypress(True) 또는 libtcod.console_check_for_keypress()으로 전화해야합니다.

+0

게임을 실시간으로하고 싶다면 키를 누를 때까지 계속 게임을 계속할 수 있습니까? –

+0

'libtcod.console_check_for_keypress()'를 사용하지 않는 경우 – sloth

+0

감사 메이트 SOLVED –