2013-06-11 2 views
0

제 질문은 Allegro 5 C++와 관련되어 있습니다. 다음은 화면에 텍스트를 그려야하는 내 코드의 일부입니다. 나는 모든 선언을했으며 코드의이 부분에 오류가 있습니다. C++ Allegro al_draw_textf()

그래서 처음에 나는

주요 al_init_font_addon();에서이 함수를 호출 그리고 여기에 텍스트를 그리는 또 다른 기능입니다 한 전역 변수 ALLEGRO_FONT * font; 을 선언했다.

void draw(){ 
     int score=0 ; 
     while (!GetAsyncKeyState(VK_ESCAPE)){ 
      al_clear_to_color(al_map_rgb(0 , 0 , 0)); 
      al_init_ttf_addon(); 
      font = al_load_font ("font.ttf" , 24 , NULL); 
      al_draw_textf(font , al_map_rgb(255 , 0 , 255) , 200 , 200 , ALLEGRO_ALIGN_CENTRE , "SCORE: %d" , score); 
      al_flip_display(); 
      score +=10; 
     } 
    } 

문제는 자원을 unallocating하지 않으면 서 while 루프

+0

참고 사항 : Allegro에서 크로스 플랫폼 루틴을 제공 할 때 Windows 관련 키보드 기능을 사용할 필요가 없습니다. – Matthew

답변

1

당신은 새로운 글꼴 각 루프를 초기화하고의 507 단계에서이 응용 프로그램의 충돌,이 완료되면이다 그것으로.

대신 루프 앞에 al_init_ttf_addonal_load_font을 한 번만 호출하고 루프에서 사용하십시오. 글꼴 사용을 끝내면 글꼴을 비우는 것을 잊지 마십시오. 실제로 프로그램을 초기화 할 때 main 함수를 호출 할 때 실제로 al_init_ttf_addon을 호출하는 것이 좋습니다.